题目描述
输入一个二维数组a,然后将改二维数组中行和列中的元素互换,存到另外一个二维数组b中,然后将b与a按一定格式分别输出
输入
测试数据由多组组成,每一组的格式如下:
第一行输入两个整数n、m(n,m<100),表示二维数组大小a[n][m]
接下来有n行,每行有m个整数(第i行的第j个数表示a[i-1][j-1]的值),数与数之间空格隔开(见样例输入)
输出
对于每组测试数据首先输出数组b(格式参考样例输出),每个数后面带一个空格,接着输出数组a,格式同数组b(见样例输出)
样例输入 Copy
2 3 1 2 3 4 5 6
样例输出 Copy
1 4 2 5 3 6 1 2 3 4 5 6
#include<stdio.h>
main(void){
int n,m,i,j;
int a[101][101];
int b[101][101];//定义一个数组存储输入的数
while ((scanf("%d %d",&n,&m))!=EOF){
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%d",&a[i][j]);}//注意是"%d"不是"%d ",如果是后者意味着把空格也赋值给a[i]
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
b[i][j]=a[j][i];//注意!!是b[i][j]不是b[j][i],i是行,j是列!!
printf("%d ",b[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
}
return 0;
}