Est-ce le code que vous avez utilisé dans votre application? Parce que c'est faux.
La syntaxe de l'instruction for
est:
for (Initialization; Condition to continue with the loop; Step Operation) {}
Dans votre cas, vous devez utiliser quelque chose comme ceci:
#define COLS 10
#define ROWS 5
int mat[COLS][ROWS];
int mat2[ROWS][COLS];
int i, j;
for (i = 0; i < COLS; i ++) {
for (j = 0; j < ROWS; j++) {
mat2[j][i] = mat[i][j];
}
}
De cette façon, cela pourrait transposer votre matrice. Naturellement, vous devez d'abord connaître les dimensions de la matrice. Une autre façon pourrait être de votre matrice dinamically initialiser à l'aide des données de l'utilisateur fourni, comme ceci:
int ** mat;
int ** mat2;
int cols, rows;
int i, j;
/* Get matrix dimension from the user */
mat = (int **) malloc (sizeof(int *) * cols);
for (i = 0; i < cols; i++) {
mat[i] = (int *) malloc (sizeof(int) * rows);
}
cette façon, vous initialiser une matrice dinamically et vous pouvez transposer la même manière que précédemment.
Qu'est-ce que cela signifie par "ne fonctionne pas"? – kennytm
Que voulez-vous dire que ça ne marche pas? Il se bloque? Ne fait rien? Aidez-nous à vous aider! –
espérons que vous avez alloué les tableaux de bonnes dimensions. @all je sais que cela devrait être un commentaire. mais je n'ai pas assez de points de réputation pour le faire: | – Rahul