I am trying to import a matrix in C to then be able to transpose it. When I try to print it, it gives me a 100 by 100 matrix (fills in the blanks with 0's) when it is actually only a 4 by 4. How do I fix this while still keeping the possibility of a bigger matrix in my code? I think the issue might be in my for loops but I can't figure out what to change.
Here is the file I am importing:
4 4
67 23 1 9
7 23 45 98
3 12 4 2
0 0 2 1
PS: I'm french hence the weird names. I added a translation in case it helps better understand my code.
#include stdio.h
#define MAX 100
#define FICHIER_TRANS "trans.txt" // file_trans
int M[MAX][MAX];
FILE * fichier; // fichier=file
void
charger () // function to charge the info from the file
{
int ligne, colonne; // line, column
if ((fichier = fopen (FICHIER_TRANS, "r")) == NULL)
{
printf ("Il y a un probleme pour ouvrir ce fichier"); // there is a problem opening this file
}
else
{
for (ligne = 0; ligne < MAX && !feof (fichier); ligne++)
{
for (colonne = 0; colonne < MAX && !feof (fichier); colonne++)
{
fscanf (fichier, "%d", &M[ligne][colonne]);
}
}
}
}
void
afficher () // function to print the matrix taken from the file
{
int ligne, colonne;
for (ligne = 0; ligne < MAX; ligne++)
{
for (colonne = 0; colonne < MAX; colonne++)
{
printf ("%3d", M[ligne][colonne]);
}
printf ("\n");
}
}
int
main ()
{
charger();
afficher ();
return 0;
}