Matrices

Cristagide2b -  
Cristagide2b Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai écris un programme qui permet de lire une matrice de 3 lignes et 3 colonnes. Mais voilà lorsque j'arrive à la saisie de la valeur [3][1], je rentre un nombre et après rien du tout. Le programme s'arrête.

Est-ce que quelqu'un pourrait m'aider ? Voici mon code :

#include <stdio.h>
#include <string.h>

int main()
{
int M1[2][2];
//int M2[2][2];
//int M3[2][2];
int i, j;
printf("Bonjour, veuillez entrer les valeurs de la première matrice, de ligne en ligne :\n\n");
for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
printf("Valeur [%d][%d] : ", i+1, j+1);
scanf("%d", &M1[i][j]);
}
}
return 0;
}



Merci d'avance !

Configuration: Windows / Edge 17.17134

1 réponse

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
int M1[2][2];
signifie
int M1[0..1][0..1];
Donc tu tapes hors du tableau, stack overflow et erreur, encore une "chance" que tu n'ai pas de Segfault ou similaire.
0
Cristagide2b Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci. Ce qui nous a été dis en cours n'était pas du tout ça. Apparemment quand on initialise un tableau, en algorithme on le présente sous la forme : T[1..3] et en C : T[2] puisque ça commence à 0, 1, 2... Je ne comprends pas pourquoi 2 n'est pas pris en compte ?
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Car Tab[2] définit un tableau de 2 éléments, et comme on part de 0, ça fait 0..1
0
Cristagide2b Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Daccord je comprends mieux. Merci beaucoup !
0