C语言函数,数组问题求助
(1)编写一段函数,功能为将一个二维数组的行和列的元素互换(即行列转置),存到另一个二维数组中;
(2)在主函数中定义二维整型数组a和b,数组a的内容从键盘输入(内容由你来定);数组b不用初始化。之后,调用你编写的函数,将数组a中的行和列互换,存放到b数组中。在主函数中输出数组a和b。
答案:#include<stdio.h>
#define M 3
#define N 2
void fun(int a[][N],int b[][M])
{ int i,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
b[j][i]=a[i][j];
}
int main()
{ int a[M][N],b[N][M],i,j;
printf("Input the array a[%d][%d]:\n",M,N);
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
fun(a,b);
printf("The array b[%d][%d]:\n",N,M);
for(i=0;i<N;i++)
{ for(j=0;j<M;j++)
printf("%d",b[i][j]);
printf("\n");
}
return 0;
}
其他:#include<stdio.h>
#define hn 4
#define le 4
int main()
{
double a[hn][le],b[le][hn];
int i,j;
void swap(double (*a)[le],double (*b)[hn]);
printf("请输入%d行,%d列数",hn,le);
for(i=0;i<hn;i++)
for(j=0;j<le;j++)
scanf("%lf",&a[i][j]);
swap(a,b);
printf("行列互换后:\n");
for(i=0;i<hn;i++)
for(j=0;j<le;j++)
printf("%lf",b[i][j]);
return 0;
}
void swap(double (*a)[le],double (*b)[hn])
{
int i,j;
for (i=0;i<hn;i++)
for (j=0;j<le;j++)
b[j][i]=a[i][j];
}
上一个:C语言中如何把变量转化为常量?要在WIN-TC中能用。
下一个:c++和c语言