C语言问题 请编写函数fun,其功能是:找出2*M整型二维数组中最大元素的值,并将此值返回调用函数

#include <stdio.h>
#define M 4
int fun (int a[][M])
{
不知道这里填什么

}

main( )
{ int arr[2][M]={5,8,3,45,76,-4,12,82} ;void NONO ();
printf("max =%d\n", fun(arr)) ;

}

首先,假如按照你函数写法的话,会有一些问题,因为这样无法知道被调函数的大小,那么这样就无法进行每一个值的索引,从而也就没法算出最大值,所以你需要把一维的大小也作为函数值进行调用,例如fun(arr,2),或者,你可以将2用字符常量表示,我这里用字符常量表示,修改为

#include <stdio.h>
#define N 2

#define M 4
int fun (int a[][M])
{
      int i=0,j=0;  //进行二重索引

     int max=a[i][j];  //用于保存最大值,初始化为第一个数

    for(i=0;i<N;i++)     //进行循环,每一个值与max比较,大于就赋给max,这样下来max就

       for(j=0;j<M;j++)        // 是数组中最大值

          if(a[i][j]>max)

               max=a[i][j];

       return  max;
}

int main(void )
{

    int arr[2][M]={5,8,3,45,76,-4,12,82} ;

   void NONO ();
   printf("max =%d\n", fun(arr)) ;

 

   return 0;
}

 

 

望采纳加分,还有不懂可以追问

追问

编译连接运行、、、、、然后我的瑞星也跟着就启动了、、、、、

追答

将杀毒检测软件关了,我的金山毒霸也会这样,关了就没事了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-26

#include <stdio.h>

#define M 4

int fun (int a[][M])

{

int max=a[0][0];

for(int i=0;i<2;i++)

for(int j=0;j<M;j++)

if(max<a[i][j])max=a[i][j];

return max;

}

main( )

{ int arr[2][M]={5,8,3,45,76,-4,12,82} ;void NONO ();

printf("max =%d\n", fun(arr)) ;

}

运行结果如下: