请编写函数fun,其功能是:统计出x所指数组中能被e整除的元素个数,通过函数值返回主函数;同时,计算不能被e整除的元素之和,放到形参sum所指的存储单元中。
例如,当数组x内容为1,7,8.6,10,15,1,13,29,31,整数e内容为3时输出结果应该是:n=2,um=110
注意:部分源程序在文件 PROGL.C中。请勿改动主函数mai和其他函数中的任何内容,仅在函数fun
的花括号中填入所编写的若干语句。
运行出错(结果正确):
#include <stdio.h>
#include <stdio.h>
#pragma warning (disable:4996)
#define N 10
int fun(int x[], int e, int *sum)
{
int i, num = 0;
*sum = 0;
for(i=0; i<N; ++i) //遍历数组,判断每个数的奇偶性再分别操作
{
if(x[i]%e == 0)
num ++;
else
*sum += x[i];
}
return num;
}
main()
{
void NONO();
int x[N] = {1, 7, 8, 6, 10, 15, 11, 13, 29, 31}, e = 3, n, sum;
n=fun(x, e, &sum);
printf("n=%d,sum=%d\n", n, sum);
NONO();
}
void NONO()
{
/*请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。*/
int i, j, x[10], n, e, sum;
FILE *rf, *wf ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i=0; i<5; i++) {
for(j=0; j<10; j++) fscanf(rf, "%d ", &x[j]); fscanf(rf, "%d", &e);
n = fun( x, e, &sum );
fprintf(wf, "%d, %d\n", n, sum);
}
fclose(rf) ;
fclose(wf) ;
}