C语言之二维数组输入输出

题目描述 输入一个二维数组a,然后将改二维数组中行和列中的元素互换,存到另外一个二维数组b中,然后将b与a按一定格式分别输出
输入
测试数据由多组组成,每一组的格式如下:
第一行输入两个整数n、m(n,m<100),表示二维数组大小a[n][m]
接下来有n行,每行有m个整数(第i行的第j个数表示a[i-1][j-1]的值),数与数之间空格隔开(见样例输入)
输出
对于每组测试数据首先输出数组b(格式参考样例输出),每个数后面带一个空格,接着输出数组a,格式同数组b(见样例输出)样例输入2 3 1 2 3 4 5 6样例输出1 4 2 5 3 6 1 2 3 4 5 6

#include <stdio.h>
int main()
{
int a[100][100],b[100][100]; //n,m<100,所以定义100*100的数组就够用了
int m,n,i,j;

scanf("%d %d", &n, &m );
for( i=0;i<n;i++ )
{
for(j=0;j<m;j++ )
{
scanf("%d", &a[i][j] );
b[j][i]=a[i][j] ;//交换位置存储
}
}

for( i=0;i<m;i++ ) //b是m*n
{
for(j=0;j<n;j++ )
{
printf("%d ", b[i][j] );
}

}
printf("\n");
for( i=0;i<n;i++ )//a是n*m
{
for(j=0;j<m;j++ )
{
printf("%d ", a[i][j] );
}

}
printf("\n");
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-03
#include <stdio.h>

#define m 2
#define n 3
int main()
{
int a[m][n],b[n][m],i,j;
printf("请输入一个两行三列的数");
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
b[j][i]=a[i][j];
}
}
printf("转换为三行两列值为");
for (i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d,"b[i][j]);
}
}
system("pause");
return 0;
}
第2个回答  2014-12-03
突然发现毕业后,这种题都不会做了,不好意思啊!
相似回答