程序设计题:请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回?

二维数组中的值在主函

数中赋予。

例如:二维数组中的值为

1 3 5 7 9

2 9 9 9 4

6 9 9 9 8

1 3 5 7 0

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

#include <stdio.h>

#define M 4

#define N 5

int fun ( int a[M][N] )

{

}

main( )

{ int aa[M][N]={{1,3,5,7,9},

{2,9,9,9,4},

{6,9,9,9,8},

{1,3,5,7,0}};

int i, j, y;void NONO ();

printf ( "The original data is : \n" );

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

{ for ( j =0; j<N; j++ ) printf( "%6d", aa[i][j] );

printf ("\n");

}

y = fun ( aa );

printf( "\nThe sum: %d\n" , y );

printf("\n");

NONO( );

getchar();

}

void NONO ()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,

输出数据,关闭文件。 */

int i, j, y, k, aa[M][N] ;

FILE *rf, *wf ;

rf = fopen("..\\..\\in.dat","r") ;

wf = fopen("..\\..\\out.dat","w") ;

for(k = 0 ; k < 10 ; k++) {

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

for(j = 0 ; j < N ; j++) fscanf(rf, "%d", &aa[i][j]) ;

y = fun ( aa );

fprintf(wf, "%d\n", y) ;

}

fclose(rf) ;

fclose(wf) ;

}

第1个回答  2020-07-06
//fun函数内容
//考虑遍历法:所有元素都找一遍,满足条件的加到sum里去
int i,j,sum=0;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
if(i==0||j==0||i==M-1||j==N-1)
sum+=aa[i][j];
}
return sum;追问

有错误,不能运行

追答

我没有注意形参。形参是a。
要么 你把我写的这些aa都换成a.
要么 你把形参int a[M][N]改成int aa[M][N]

追问

ok,解决了

本回答被提问者和网友采纳
第2个回答  2020-07-06
组中的值在主函 数中赋予。 例如:二维数组中
相似回答