Exercice transposition d'une matrice avec langage C

Exercice sur le langage C  : Les Matrices

Ecrire un programme qui effectue la transposition tA d'une matrice A de dimensions N et M en une matrice de dimensions M et N.

a) La matrice transposée sera mémorisée dans une deuxième matrice B qui sera ensuite affichée.

b) La matrice A sera transposée par permutation des éléments.

Rappel:

/ \ / \ tA = t | a b c d | = | a e i | | e f g h | | b f j | | i j k l | | c g k | \ / | d h l | \ /

Corrigé d'exercice transposition d'une matrice avec langage C

a) La matrice transposée sera mémorisée dans une deuxième matrice B qui sera ensuite affichée.

#include
main()
{
/* Déclarations */
int A[50][50]; /* matrice initiale */
int B[50][50]; /* matrice résultat */
int N, M; /* dimensions des matrices */
int I, J; /* indices courants */
/* Saisie des données */
printf("Nombre de lignes (max.50) : ");
scanf("%d", &N );
printf("Nombre de colonnes (max.50) : ");
scanf("%d", &M );
for (I=0; Ifor (J=0; J{
printf("Elément[%d][%d] : ",I,J);
scanf("%d", &A[I][J]);
}
/* Affichage de la matrice */
printf("Matrice donnée :\n");
for (I=0; I{
for (J=0; Jprintf("%7d", A[I][J]);
printf("\n");
}
/* Affectation de la matrice transposée à B */
for (I=0; Ifor (J=0; JB[J][I]=A[I][J];
/* Edition du résultat */
/* Attention: maintenant le rôle de N et M est inversé. */
printf("Matrice résultat :\n");
for (I=0; I{
for (J=0; Jprintf("%7d", B[I][J]);
printf("\n");
}
return 0;
}

b) La matrice A sera transposée par permutation des éléments.

#include
main()
{
/* Déclarations */
int A[50][50]; /* matrice donnée */
int N, M; /* dimensions de la matrice */
int I, J; /* indices courants */
int AIDE; /* pour la permutation */
int DMAX; /* la plus grande des deux dimensions */
/* Saisie des données */
printf("Nombre de lignes (max.50) : ");
scanf("%d", &N );
printf("Nombre de colonnes (max.50) : ");
scanf("%d", &M );
for (I=0; Ifor (J=0; J{
printf("Elément[%d][%d] : ",I,J);
scanf("%d", &A[I][J]);
}
/* Affichage de la matrice */
printf("Matrice donnée :\n");
for (I=0; I{
for (J=0; Jprintf("%7d", A[I][J]);
printf("\n");
}
/* Transposition de la matrice A par permutation des */
/* éléments [I][J] à gauche de la diagonale principale */
/* avec les éléments [J][I] à droite de la diagonale. */
DMAX = (N>M) ? N : M;
for (I=0; Ifor (J=0; J{
AIDE = A[I][J];
A[I][J] = A[J][I];
A[J][I] = AIDE;
}
/* Edition du résultat */
/* Attention: maintenant le rôle de N et M est inversé. */
printf("Matrice résultat :\n");
for (I=0; I{
for (J=0; Jprintf("%7d", A[I][J]);
printf("\n");
}
return 0;

Article publié le 05 Février 2011 Mise à jour le Mardi, 08 Novembre 2022 10:31 par Salim KHALIL