Bonjour,
J'ai un exercice à faire en C et je suis bloqué: je dois comparer 2 tableaux grace à l'ordre lexicographique: voici ce que j'ai fait
#include <stdio.h>
#define N 5
int main(void)
{
int i,inf=1;
int tableau1[N]={1,2,5,8,3};
int tableau2[N]={1,2,4,8,9};
for (i=0;i<N;i++)
{
if (tableau2[i]<tableau1[i])inf=0;
}
if (inf==1)printf("tableau1<=tableau2"); else printf("tableau2<tableau1");
return 0;
}
Voilà, je sais qu'il ne me manque pas grand chose mais je ne trouve pas..
Merci de m'aider!
Si tu veux juste comparer ces deux tableaux statiques do while jouera la mm fonction que for en effet , tu peux remplacer :
for (i=0;i<N;i++)
{
if (tableau2[i]<tableau1[i])inf=0;
}
par :
i=0;
do
{
if (tableau2[i]<tableau1[i])
inf=0;
i++;
}while(i<5)
l'instruction : system("PAUSE") permet tout simplement au programme de faire une pause pour permettre a l'utilisateur de voir ce qui a été affiché,en effet, si tu compiles ce code tel qu'il est maintenant tu ne vas voir qu'un écran noir qui va durer même pas une seconde .
Je ne comprends pas en quoi faire une pause résout mon problème..
Je veux, au final, savoir si tableau 1 > tableau 2 ou inversement et affiche le resultat à l'aide d'un printf tout en sachant que je dois résoudre ceci grâce à l'ordre lexicographique: le fait de mettre en pause ne change rien au programme que j'ai fait: il affichera la même chose (pas ce que je voulais c'est pour cela que je suis venu demander de l'aide) un peu plus tard du fait de la pause non?
#include <stdio.h>
#define N 5
int main(void)
{
int tableau1[N] = {1, 2, 5, 8, 3};
int tableau2[N] = {1, 2, 4, 8, 9};
int inf = 0;
for (int i=0; i<N; i++) {
if (tableau1[i] < tableau2[i]) {
inf = -1;
break;
} else if (tableau2[i] < tableau1[i]) {
inf = 1;
break;
}
}
if (inf == -1) {
printf("tableau1 < tableau2");
} else if (inf == 1) {
printf("tableau2 < tableau1");
} else {
printf("tableau1 == tableau2");
}
}
Le break sert à sortir de la boucle dès qu'on a trouvé une différence entre les tableaux. C'est uniquement la première paire d'éléments différents qui est significative. Sans le break, la boucle continue jusqu'à la fin, et si on a par exemple [1, 2, 3, 4, 5] et [1, 3, 2, 5, 4], l code dira que le premier tableau est supérieur au second (parce que 5 > 4 au dernier chiffre).
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :