Bonjour à tous,
J'ai un tout petit programme super simple (en fait une sous-partie d'un plus gros programme) qui me pose un problème que je trouve hallucinant. Il s'agit d'assigner aux cases d'un tableau appelé "ligne" la valeur 1.
Voilà le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
for (i=1;i<=n;i++)
{
    ligne[i]=1;
    printf("ligne(%d)=%d\n",i,ligne[i]);
}
printf("\n");
// Vérification :
for (i=1;i<=n;i++)
{
    printf("ligne(%d)=%d\n",i,ligne[i]);
}
Quand n vaut 1, 2, 3, 4, 5 ou 7, les 2 printf me donnent la même chose :
par exemple pour n = 4
ligne(1)=1
ligne(2)=1
ligne(3)=1
ligne(4)=1
Quand n = 6 ou n >=8, ça ne me donne pas la même chose !!!
par exemple pour n = 6, le 1er printf me donne
ligne(1)=1
ligne(2)=1
ligne(3)=1
ligne(4)=1
ligne(5)=1
ligne(6)=1
Mais le 2ème me donne
ligne(1)=0
ligne(2)=0
ligne(3)=1
ligne(4)=1
ligne(5)=1
ligne(6)=1
Ca me parait incompréhensible, j'ai beau le tourner dans tous les sens je ne vois pas quoi faire.
Auriez-vous une idée ? Merci d'avance