vc2010运行出现错误(C语言二级ti)

请编写函数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) ;
}

我用CodeBlcoks运行结果正确,也没有报你说的那个错,可能是你装的vc2010有问题吧

for(j=0; j<10; j++) fscanf(rf, "%d ", &x[j]);  fscanf(rf, "%d", &e);

这行代码,最起码用个大括号,其实 fscanf(rf, "%d", &e);不在这个循环内

rf = fopen("in.dat","r") ;
把你的in.dat的测试数据贴出来啊