C语言,二维数组输入输出
输入一个二维数组a,然后将改二维数组中行和列中的元素互换,存到另外一个二维数组b中,然后将b与a按一定格式分别输出输入测试数据由多组组成,每一组的格式如下:第一行输入两个...
输入一个二维数组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 展开
输入
测试数据由多组组成,每一组的格式如下:
第一行输入两个整数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 展开
1个回答
展开全部
2维数组可以按一维排列 a[j][i] 对应 a[j*n+i]
#include <stdio.h>
main()
{
int i,j,n,m;
int *a, *b;
static int v;
scanf("%d %d",&n,&m);
a = (int*)malloc(sizeof(int)*n*m);
b = (int*)malloc(sizeof(int)*n*m);
for (j=0;j<n;j++)
for (i=0;i<m;i++)
{ scanf("%d",&v); a[j*m+i]=v; b[i*n+j]=v;}
for (j=0;j<m;j++) for (i=0;i<n;i++) printf("%d ",b[j*n+i]);
for (j=0;j<n;j++) for (i=0;i<m;i++) printf("%d ",a[j*m+i]);
}
#include <stdio.h>
main()
{
int i,j,n,m;
int *a, *b;
static int v;
scanf("%d %d",&n,&m);
a = (int*)malloc(sizeof(int)*n*m);
b = (int*)malloc(sizeof(int)*n*m);
for (j=0;j<n;j++)
for (i=0;i<m;i++)
{ scanf("%d",&v); a[j*m+i]=v; b[i*n+j]=v;}
for (j=0;j<m;j++) for (i=0;i<n;i++) printf("%d ",b[j*n+i]);
for (j=0;j<n;j++) for (i=0;i<m;i++) printf("%d ",a[j*m+i]);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询