SOS boucle infinie
Résolu
znounou
Messages postés
39
Statut
Membre
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Salut,je debute en c et je suis un peu nul en essayant de faire un tableau de multiplication j ai eu une boucle infinie donc je me tourne vers vous car j ai chercher long temps sur le net sans découvrir ou est l erreur , voila le programme et merci d'avance :)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
int t[9][9];
for(i=1;i<=9;i++){
for(j=1;j<=9;j++){
t[i][j]=i*j;
}
}
for(i=1;i<=9;i++){
for(j=1;j<=9;j++){
if(j=9){printf("%d\n",t[i][j]);}
if(j=!9){printf(" %d ",t[i][j]);}
}
}
system("PAUSE");
return 0;
}
1 réponse
-
'lut, l'erreur classique
if(j=9){printf("%d\n",t[i][j]);} if(j=!9){printf(" %d ",t[i][j]);}j=9
attribue 9 àj
, donc la boucle ne se termine jamais. En C, on teste l'égalité avec l'opérateur==
.
De même, ce n'est pasj=!9
maisj!=9
.
Et ton tableau n'est pas assez grand: il fait 9x9, or tu accèdes jusqu'à l'élément 9,9 ; les tableaux commencent à 0! Pour faire simple, fait le de 10x10.
system("PAUSE");peut être remplacé pargetchar();
, plus portable.
(portables dans la pratique, @fiddy, avant que tu me tapes dessus)
Et pour finir, ton identation est... exotique. Généralement on décale d'un nombre fixe d'espaces/tabulations lors de l'ouverture/fermeture d'un bloc de code ({}), pas de la largeur de la boucle/condition.
from human import idiocy
del idiocy