我已经编写了这段代码来输入 r*c 矩阵
r -> 行 c -> 列
它在 r<=c 时工作正常,但在 r>c 时无法产生正确的输出。
例子:
r=6,c=2
输入:1 2 3 4 5 6 7 8 9 10 11 12
输出:
1 2 11 12 5 6 11 12 11 12 11 12
请告诉我哪里出错了。我不想使用恒定大小的数组。
#include <stdio.h>
void scanmatrix(int* a[],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
scanf("%d",&a[i][j]);
}
}
}
void printmatrix(int* a[],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
printf("\n\n");
for(j=0;j<c;j++)
{
printf("%d\t",a[i][j]);
}
}
}
int main()
{
int* a;
int r,c,i,j;
scanf("%d%d",&r,&c);
a=(int *)malloc(r*c*sizeof(int));
scanmatrix(&a,r,c);
printmatrix(&a,r,c);
return(0);
}