c - Not displaying correctly transpose of matrix? -
it works fine quadratic matrix (2x2 or 3x3) 2x3 or 3x2 doesn't display correctly!!
#include <stdio.h> int main() { int i,j,k,c1,c2,l1,l2; int m1[10][10],m2[10][10],transposta[10][10],multiplicacao[10][10]; printf("\ndigite o numero de linhas e colunas na primeira matriz\n"); scanf("%d%d",&l1,&c1); printf("\ndigite os elementos da matriz:\n"); for(i=0;i<l1;i++) { for(j=0;j<c1;j++) { scanf("%d",&m1[i][j]); } } for(i=0;i<l1;i++) { for(j=0;j<c1;j++) { transposta[j][i] = m1[i][j]; } } printf("\na matriz transposta e:\n"); for(i=0;i<l1;i++) { for(j=0;j<c1;j++) printf("%d\t",transposta[i][j]); printf("\n"); } if put elements {1,2,3,4,5,6} in 2x3 matrix, displays this:
1 4 1
2 5 0
however correct way be:
1 4
2 5
3 6
what wrong code , why doesn't work when number of rows different columns
everything correct in code, change
for(i=0;i<l1;i++) { for(j=0;j<c1;j++) printf("%d\t",transposta[i][j]); printf("\n"); } by
for(i=0;i<c1;i++) { for(j=0;j<l1;j++) printf("%d\t",transposta[i][j]); printf("\n"); } for printing purpose, have take care of c1 , l1
Comments
Post a Comment