请编写函数fun(),该函数的功能是将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。例如:二维数组中的数据为333333334444444455555555则一维数组中的内容应是334455334455334455334455。注意:部分源程序以存在文件test_2.cpp中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。文件test39_2.cpp的内容如下:include<stdio.h>include<iostream.h>void fun(

题目

请编写函数fun(),该函数的功能是将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。

例如:二维数组中的数据为

33333333

44444444

55555555

则一维数组中的内容应是

334455334455334455334455。

注意:部分源程序以存在文件test_2.cpp中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

文件test39_2.cpp的内容如下:

include<stdio.h>

include<iostream.h>

void fun(int(*s) [10],int *b, int *n,int mm,int nn)

{

}

void main( )

{

int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;

int a[100]={0}, n=0;

cout<<"The matrix:\n"

for(i=0; i<3; i++)

{

for(j=0; j<4; j++

cout<<w[i] [j];

cout<<endl;

}

fun(w, a, &n, 3, 4);

cout<<"The A array:\n";

for(i=0; i<n; i++)

cout<<a[i];

cout<<"\n\n";

}


相似考题
更多“请编写函数fun(),该函数的功能是将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。 例 ”相关问题
  • 第1题:

    程序定义了NxN的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m。

    例如:若m的值为2,a数组中的值为:

    注意:部分源程序存在文件PROGl.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:该程序功能是使数组右上半三角元素中的值乘以m。本题中首先要确定右上角半角元素的特点,然后对元素逐个进行乘以m的操作。其中,右上角的元素是行下标小于等于列下标的元素。

  • 第2题:

    请编一个函数void proc(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。

    试题程序:


    正确答案:


    【解析】按照题目中要求,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。首先比较二维数组中每一行的元素,然后找出每一行中的最大元素,放入一维数组pp中,最后返回到主函数当中。

  • 第3题:

    以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义) int fun(int a[N][M]) {int i,j,row=0,col=0; for(i=0;i<N;i++) for(j=0;j<M;j++) if(a[i][j]>a[row][col]){row=i;col=j;} return(_____); }


    void fun (int(*s) [10]int *bint*nint mmint nn) {int ij; for(i=0;i<mm;s++j++) for(j=0;j<nn;j++) *(b+i*nn+j)=(*s)[j]; *n=mm*nn; } voidfun(int(*s)[10],int*b,int*n,intmm,intnn){inti,j;for(i=0;i<mm;s++,j++)for(j=0;j<nn;j++)*(b+i*nn+j)=(*s)[j];*n=mm*nn;}

  • 第4题:

    请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

    例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。

    删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。

    注意:部分源程序在文件PROGl.C中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:该程序功能是删去一维数组中所有相同的数,使之只剩一个。解题思路是,首先在函数中定义临时变量指向每一个元素,然后在循环过程中将临时值和其他元素进行比较,如果相同,那么跳过相同字符。

  • 第5题:

    以下函数rotate的功能是:将N行N列的二维数组a中的最后一行放到N行N列的二维数组b的第0列中,把二维数组a中的第0行放到二维数组b的最后一列中,二维数组b中其他数据不变,请在下划线处填空。 #define N 4 void rotate(int a[N][N], int b[N][N]) { int i; for (i=0; i<N; i++) { b[i][0] = a[N-1][i] ; (1) = a[0][i]; } }


    b[i][N-1]