Accueil > Forum > > > > Demande d'explication a propos d'un code.
Demande d'explication a propos d'un code.
lundi 21 novembre 2005 à 23:03:14 |
Demande d'explication a propos d'un code.

Strick9
|
Salut à tous, j'ai obtenu grâce à se merveilleux site ce code sources pour cet énoncés:
un programme permettant de donner toute les combinaison suite a la saisie d'une séquance de chiffres et ceci de 1 a "n" chiffres. tell que pour les chifres 1, 5 et 8 on obtient : 158 185 518 581 851 815
et voici le code source :
#include <stdio.h> void Affichage(int tab[60],int taille_tab) { int i; for(i=0;i<taille_tab;i++) printf("%d",tab[i]); printf("\n"); } void permute(int tab[60],char i, char j) { char c; c=tab[i]; tab[i]=tab[j]; tab[j]=c; } void combin(int tab[60],int i, int taille_tab) { char j; if (i==taille_tab) { Affichage(tab,taille_tab); } else for(j=i;j<taille_tab;j++) { permute(tab,i,j); combin(tab,i+1,taille_tab); permute(tab,i,j); } } void main() { int i,nbrval,tab[60]; printf("\n\t\tDonner le nombre de valeur(s) a calculer:\n"); scanf("\t\t%d", &nbrval); for (i=0;i<nbrval;i++) { printf("\n\tDonner une valeur:\t"); scanf("%d", &tab[i]); } combin(tab,0,nbrval); printf("\n"); }
Donc si une âme charitable accpete bien de m'expliquer ce code source pour que je puisse mieux le comprendre j'en serai vraiment ravi et merci d'avance.
|
|
mardi 22 novembre 2005 à 08:31:39 |
Re : Demande d'explication a propos d'un code.

deck_bsd
|
Réponse acceptée !
La procédure affichage, ben c'est très simple . void Affichage(int tab[60],int taille_tab) { int i; for(i=0;i<taille_tab;i++) printf("%d",tab[i]); printf("\n"); } Pour i allant de 0 à taille du tableau -1 on affiche les valeurs des différents indices. Pour la fonction de permutation : void permute(int tab[60],char i, char j) { char c; c=tab[i]; tab[i]=tab[j]; tab[j]=c; } on stock dans une variable temporaire (ici c) la valeur de tab[i], ensuite on remplace la valeur de l'indice i par la valeur de l'indice j. Et ensuite on retape la valeur de l'indice pas la valeur contenue dans la variable c. void combin(int tab[60],int i, int taille_tab) { char j; if (i==taille_tab) { Affichage(tab,taille_tab); } else for(j=i;j<taille_tab;j++) { permute(tab,i,j); combin(tab,i+1,taille_tab); permute(tab,i,j); }} Ici on utilise la récursivité (a savoir on appelle la procédure combi dans celle-ci). Donc en faite on fait une boucle. Le permier if est la condition pour finir la boucle. Donc une fois que on a permuter les caractères jusqu'à atteindre la taille du tableau (hum j'espère que tu a compris cette phrase lol). Si ce n'est pas le cas on fait pour i allant de l'indice j(élément suivant) jusqu'à taille du tableau, on permutes les caractères et puis on rapelle la procédure (c'est grace à ceci que le j=i de la boucle for peut fonctionner.) et on repermute. Pour ce qui est du main c'est bêtement l'introduction des données. Voila, j'espère que j'ai pus t'aider. Bon code ++ALL
|
|
mardi 22 novembre 2005 à 09:01:15 |
Re : Demande d'explication a propos d'un code.

coucou747
|
salut mais trois boucles for les unes dans les autres, ça ne marche pas ? In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy [ Lien ]
|
|
mardi 22 novembre 2005 à 09:46:55 |
Re : Demande d'explication a propos d'un code.
|
mardi 22 novembre 2005 à 09:49:45 |
Re : Demande d'explication a propos d'un code.

buno
|
Je récapitule: - Strick9 a reçu un énoncé d'exercice à faire pour le tant, - Strick9 a la flemme de le faire et personne ne veut l'aider donc il demande à CS - Quelqu'un lui pond un code, relativement aisé à comprendre (merci Mr. X) - Strick9 a aussi la flemme de comprendre ce code et redemande la solution Question: Strick9 a-t-il testé le code fourni par l'aimable MR. X?? Morale: C'est pas comme ça qu'on apprend à coder... Remarque: Si j'avais été MR. X, j'aurais laissé au moins un bug... Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
mardi 22 novembre 2005 à 10:04:07 |
Re : Demande d'explication a propos d'un code.

coucou747
|
Réponse acceptée !
lol buno, t'as surement raison, mais j'aimes bien programmer... dsl si mon code est foireux, ça fait longtemps que je n'ai pas fait de C.... #include <stdio.h> int main(){ char tab[3]; tab[0]=1; tab[1]=5; tab[2]=8; int i, j, k; for(i=0;i<3;i++){ for(j=0;j<3;j++){ if (j!=i){ for(k=0;k<3;k++){ if (k!=i && k!=j){ printf("%d%d%d\n",tab[i],tab[j],tab[k]); } } } } } } ça donne : maxime@devmax:~$ gcc 1.c maxime@devmax:~$ ./a.out 158 185 518 581 815 851 maxime@devmax:~$ Bon, en -Wall, j'ai un message, mais j'ai jamais prétendu être super super fort en C... In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy [ Lien ]
|
|
mardi 22 novembre 2005 à 23:36:45 |
Re : Demande d'explication a propos d'un code.

Strick9
|
Merci beaucoup Deck_bsd ton aide m'a vraiment été utile. Je respecte votre point de vue Buno mais le seul hic est que je ne suis pas un étudiant, mon travail est facteur donc pour ce coups ci, c'est vous qui avais tort bien que si j'était étudiant ce que vous aurez dit serai vraiment correct.
|
|
mercredi 23 novembre 2005 à 09:09:12 |
Re : Demande d'explication a propos d'un code.

buno
|
Ok, autant pour moi. Mais il n'est malheureusement pas rare de voir se genre de demande sur CS... Désolé si je t'es froissé et bonne continuation
Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
mercredi 23 novembre 2005 à 13:41:15 |
Re : Demande d'explication a propos d'un code.

coucou747
|
salut et mon algo à moi n'est pas corect ? In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy [ Lien ]
|
|
Cette discussion est classée dans : taille, code, int, printf, tab
Répondre à ce message
Sujets en rapport avec ce message
Problem Affichage de mon Tableau [ par Orezza ]
salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le
Blem Somme ELmt d'un Tableau Bidimensionnel [ par Orezza ]
Slt c encore moi, le boulet de l'info...c tjrs le meme prog mais cette fois ci j'aimerais afficher la somme des elmts de mon tableaux.#include #includ
Mon code ne marche pô ! [ par xavier59 ]
Mon code ne marche pas !Merci de m'aider !!!**************************************************# include # include int main(){ int tab[5]; int i; int t
GetAsyncKeyState [ par sebleboss2002 ]
Bon, c'est encore moi, ce coup-ci, j'ai trouvé (plus ou moins) comment faire ce que je voulais :#include #include <br
Prob de modulo ou de code ? [ par NeoZ ]
Salut, je voudrais stocker un nombre dans un tableau, ou tout du moins, stocker chaque chiffre dans une variable, et j'ai fait ce bout de code, mais i
pb en c urgenttttttttttttttttt [ par natacha86 ]
bonjour, j'ai un probleme avec mon programme, il ne veut pas sortir, j'ai fais un menu et apparement ya un bug mais je ne comprend rien.le code est as
encore un pb en c svp....... [ par natacha86 ]
j'ai essayer de séparer les fonctions mais ca ne marche pas...#include #include #include #include #include #define MAX 1000000
help une fonction qui a besoin de vous [ par natacha86 ]
Re bonjour a tout le monde, voila j'ai mis tout le prog si vous voulez tester, en fait le pb viens de la fonctino tri_shell(), je ne sais pas pkoi ell
compilation mai au lancement "erreur la memoire ne peu pas pas etre read" [ par touny23 ]
je maitrise pas tro le C.mai comme j ai un projet a faire dessus pour la rentré , je sui obligé de m y mettre .j arrive a compiler sous dev-cpp mai lo
fonctions sur les tableau [ par micoo86 ]
Bonjour,en faite j'ai fait un programme avec le tableau (somme,affichage,minimum,maximum)mais j'arrive pas a faire le rest de l'exercice.si quelqu'un
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|