<C写函数的一道题>编译提示有错在哪里?
/*函数fun的功能是:将n个人员的考试成绩进行分段统计,考试成绩放在a数组中,各
分数段的人数存到b数组中:成绩为60到69的人数存到b[0]中,成绩为70到79的人数
存到b[1],成绩为80到89的人数存到b[2], 成绩为90到99的人数存到b[3],成绩为
100的人数存到b[4], 成绩为60分以下的人数存到b[5]中。*/
#include
#include
void fun(int a[], int b[], int n)
{ int i;
for(i=0;i<6;i++)b[i]=0;
for(i=0;i<n;i++)
{if (a[i] < 60) b[5]++;
else b[(a[i]- 60)/10]++;
}
}
main()
{ int i, a[100]={ 93, 85, 77, 68, 59, 43, 94, 75, 98}, b[6];
clrscr();
fun(a, b, 9);
printf("the result is: ");
for (i=0; i<6; i++) printf("%d ", b[i]);
printf("\n");
NONO();
}
NONO( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int a[100], b[6], i, j ;
rf = fopen("in1.dat", "r") ;
wf = fopen("bc01.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
for(j = 0 ; j < 10 ; j++) fscanf(rf, "%d,", &a[j]) ;
fun(a, b, 9) ;
for(j = 0 ; j < 6 ; j++) fprintf(wf, "%d ", b[j]) ;
fprintf(wf, "\n") ;
}
fclose(rf) ;
fclose(wf) ;
}
参考答案:改好了。已经在VC++上测试过了
#include <stdio.h>
void fun(int a[], int b[], int n) {
int i;
for(i=0;i<6;i++)
b[i]=0;
for(i=0;i<n;i++) {
if (a[i] < 60)
b[5]++;
else
b[(a[i]- 60)/10]++;
}
}
main() {
int i, a[100]={ 93, 85, 77, 68, 59, 43, 94, 75, 98}, b[6];
fun(a, b, 9);
printf("the result is: ");
for (i=0; i<6; i++)
printf("%d ", b[i]);
printf("\n");
NONO();
getch();
}
void NONO (){ /* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int a[100], b[6], i, j ;
rf = fopen("in1.dat", "r") ;
wf = fopen("bc01.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
for(j = 0 ; j < 10 ; j++)
fscanf(rf, "%d,", &a[j]) ;
fun(a, b, 9) ;
for(j = 0 ; j < 6 ; j++)
fprintf(wf, "%d ", b[j]) ;
fprintf(wf, "\n") ;
}
fclose(rf);
fclose(wf);
}