printf("\n\n");
}
fun(x);
}
解题答案:
/**********第一空d**********/
rmax=a[i][j]; c= j ;}
/**********第二空*********/
if (k!=i && a[k][c]<=rmax) find= 0 ;
/**********第三空*********/
i++ ;
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。
1 1 1
t = 1 - ----- - ----- - …… - -----
2*2 3*3 m*m
例如,若 m 中的值为: 5,则应输出: 0.536389。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun (int m)
{double y = 1.0 ;
int i ;
/**************found**************/
for(i = 2 ; i < m ; i++)
/**************found**************/
y -= 1 /(i * i);
return(y);
}
main()
{int n = 5 ;
printf("\nThe result is %lf\n", fun (n));
}
解题答案:
/**************found**************/
for(i=2; i<=m; i++)
/**************found**************/
y -=1.0/(i*i);
******************************************
[NextPage] 三、程序题:m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,
函数返回的人数应该是4, below中的数据应为: 10、20、30、40。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
int fun(int score[], int m, int below[])
{
}
main()
{int i, n, below[9] ;void NONO ();
int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ;
n = fun(score, 9, below);
printf("\nBelow the average score are: ");
for (i = 0 ; i < n ; i++) printf("%d ", below[i]);
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int i, j, n, below[10], score[10] ;
FILE *rf, *wf ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
for(j = 0 ; j < 10 ; j++) fscanf(rf, "%d", &score[j]);
n = fun(score, 10, below);
for(j = 0 ; j < n ; j++) fprintf(wf, "%d ", below[j]);
fprintf(wf, "\n");
}
fclose(rf);
fclose(wf);
}
参考答案:
int fun(int score[], int m, int below[])
{
float av=0.0 ;
int i, j=0 ;
for(i=0; i
av /= m;
for(i=0; i
if(av>score[i]) below[j++]=score[i];
return j;
}