Algorithme tableaux triée
ma
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
bonjour je dois ecrire un algo qui permet de retourner le nombre de valeur presente dans deux tableaux triée sachant qu'ils ont la meme taille et qu'il n'y a pas de valeur double dans un tableau. J'ai ecrit un tableau qui ne marche pas vraiment et je ne sais pas pourquoi. merci d'avance pour votre aide
Mon programme:
Le resultat:
i est 0
j est 0
(avant le if) c est 0
i est 0
j est 0
(apres le if) c est 0
i est 1
j est 0
(apres le else) c est 0
i est 1
j est 0
(avant le if) c est 0
i est 1
j est 0
(apres le if) c est 0
i est 2
j est 0
(apres le else) c est 0
i est 2
j est 0
(avant le if) c est 0
i est 2
j est 0
(apres le if) c est 0
i est 3
j est 0
(apres le else) c est 0
i est 3
j est 0
(avant le if) c est 0
i est 4
j est 1
(apres le if) c est 1
i est 4
j est 1
(avant le if) c est 1
i est 5
j est 2
(apres le if) c est 2
c est 2
Mon programme:
int a[3]; a[0]=1; a[1]=3; a[2]=4; a[3]=6; a[4]=9; int b[3]; b[0]=2; b[1]=3; b[2]=4; b[3]=8; b[4]=9; int i=0,c=0,j=0; while(i<5){ printf("i est %d \n", i); printf("j est %d \n", j); printf("(avant le if) c est %d \n", c); if(a[i]==b[j]){i++;c++;j++;} printf("i est %d \n", i); printf("j est %d \n", j); printf("(apres le if) c est %d \n", c); if(a[i]!=b[j]){ a[i]=a[i+1]; i++; printf("i est %d \n", i); printf("j est %d \n", j); printf("(apres le else) c est %d \n", c); } } printf("c est %d \n", c);
Le resultat:
i est 0
j est 0
(avant le if) c est 0
i est 0
j est 0
(apres le if) c est 0
i est 1
j est 0
(apres le else) c est 0
i est 1
j est 0
(avant le if) c est 0
i est 1
j est 0
(apres le if) c est 0
i est 2
j est 0
(apres le else) c est 0
i est 2
j est 0
(avant le if) c est 0
i est 2
j est 0
(apres le if) c est 0
i est 3
j est 0
(apres le else) c est 0
i est 3
j est 0
(avant le if) c est 0
i est 4
j est 1
(apres le if) c est 1
i est 4
j est 1
(avant le if) c est 1
i est 5
j est 2
(apres le if) c est 2
c est 2
A voir également:
- Algorithme tableaux triée
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Les tableaux word - Guide
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, "ne marche pas vraiment": tu souhaitais avoir un résultat différent? que souhaitais-tu avoir comme résultat?
quel est le but de la ligne 13?
en ligne 4, ne devrais-tu pas tester également j?
en ligne 14, pourquoi augmenter i plutôt que j?
je ne pense pas la même chose que toi:
- la ligne 13 n'avance pas dans le tableau 1: que fait-elle réellement? est-ce utile, nuisible?
- nous discuterons plus tard la ligne 4
- tu n'as pas répondu à la question "en ligne 14, pourquoi augmenter i plutôt que j?"
écris d'abord ton algorithme en texte, avant de faire le programme.
tu as eu la très bonne idée d'afficher en détails ce que fait le programme. examine donc aussi soigneusement cela: es-tu satisfait de son comportement? à quel moment exact se comporte-t-il bizarrement, pourquoi le résultat final est-il incorrect?
fait l'exercice sur une feuille avec les mêmes tableaux, puis compare ce que tu fais à la main et ce que le programma a fait.