问答题 请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(int s[] [10],int b[],int *n,int mm. int nn) { } main ( ) { int w[10] [10]={ {33,33,33,33},{44, 44,44,44},{55,55,55,55Jlri,j; int a[100]={0},n=0;voidNONO (); printf ("The matrix:/n") ; { for (j=0; j<4; j++) printf ( "%3d", printf("The A array:/n"); for (i=0; i
【正确答案】正确答案:1 int i,j; 2 for (j=0; j
【答案解析】解析:该程序功能是将M行、N列的二维数组中的数据,按列的顺序依次放到一维数组中。本题中首先要清楚数组元素在通常情况下是按行存放的,而如果要实现按列存放,其对应关系应为:s[0][0],s[1][0],s[2][0],…,s[M.1][0],s[0][1],s[1][1],…,s[M一1][N—1]. (1)利用两重循环,依次取矩阵中的元素。 (2)其中注意指针数组与数组指针的区别,其中数组指针s,它指向包含4个元素的一维数组。其数据元素的表示方式为:“*(*(s+i)+j)”。