当前位置:编程学习 > C/C++ >>

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语言

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,