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 -
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:
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
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:
- Lecture d'une matrice à partir d'un fichier texte
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Fichier rar - Guide
1 réponse
Salut Kenx9,
Ta boucle
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 :
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
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
Merci beaucoup !! C'a bien marché!