Lecture d'une matrice à partir d'un fichier texte

Kenx9 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Kenx9 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai essayé de lire une matrice à partir d'un fichier texte afin de créer une autre matrice que je devrais la stocker par suite dans un autre fichier texte,le problème que chaque fois j'essaye de lire les valeurs j'obtiens que des zéros (j'ai initialisé la matrice à 0 auparavant)
La lecture s'effectue avec succès pour des valeurs dans le même fichier texte qui existent avant la matrice mais non pour la matrice elle même
voila mon bout de code:
for(i=0;i<e;i++)
 {
	 fscanf(input,"%d %d %d\n",&src,&dest,&poids);
	 M[src-1][dest-1]=poids; 
 }     	   
    for(i=0,j=0;i<n,j<n;i++,j++)
	printf("%d ",M[i][j]);


Voici l'input:
1 2 5
1 3 4
2 5 1
3 4 1
3 5 1
4 6 3
5 6 2
5 7 6
6 7 1

Voila la matrice que je dois l'afficher:

0 5 4 0 0 0 0
5 0 0 0 1 0 0
4 0 0 1 1 0 0
0 0 1 0 0 3 0
0 1 1 0 0 2 6
0 0 0 3 2 0 1
0 0 0 0 6 1 0
A voir également:

1 réponse

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut Kenx9,

Ta boucle
for(i=0,j=0;i<n,j<n;i++,j++)
ne va pas. A chaque itération i et j sont tous deux incrémentés simultanément et du coup, tu n'affiches que M[0][0], M[1][1], M[2][2], ... c'est à dire la diagonale de ton tableau (qui n'est composée que de zéros).

Tu dois faire une boucle for pour afficher les lignes, qui imbrique une autre boucle for qui, pour chaque ligne, affiche chaque colonne du tableau (en gérant le retour à la ligne avant d'afficher les données de la ligne suivante).

Un truc comme :

        for (i=0; i<n; i++) {
            for (j=0; j<n; j++) {
                printf("%d ",M[i][j]);
            }
            printf("\n");
        }

Note aussi qu'il n'y a que 9 lignes d'input dans ce que tu indiques comme étant les données de départ, et qu'elles ne représentent qu'une partie des données transposées dans le tableau à obtenir (où il y a au moins 18 cases qui ne sont pas à 0).

Dal
3
Kenx9 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Je n'ai pas remarqué que jusqu'à maintenant..
Merci beaucoup !! C'a bien marché!
0