|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目时去掉一个最高分,一个最低分,求平均值
为什么我的程序运行后平均值是错的
fun 函数为自己写的,其他是题目给的
- #include <stdio.h>
- void NONO();
- double fun(double a[ ] , int n)
- {
- int i,c=0,b=0,j;
- double max,min,sum=0.0,aver=0.0;
- max=min=a[0];
- for(i=1;i<n;i++)
- {
- if(a[i]>max)
- {
- max=a[i];
- c=i;
- }
- if(a[i]<min)
- {
- min=a[i];
- b=i;
- }
- }
- for(j=0;j<n;j++)
- {
- if(j!=c||j!=b)
- {
- sum+=a[j];
- }
- }
- return sum/(n-2);
- }
- void main()
- { double b[10], r; int i;
- printf("输入10个分数放入b数组中 : ");
- for (i=0; i<10; i++) scanf("%lf",&b[i]);
- printf("输入的10个分数是 : ");
- for (i=0; i<10; i++) printf("%4.1lf ",b[i]); printf("\n");
- r = fun(b, 10);
- printf("去掉最高分和最低分后的平均分 : %f\n", r );
- NONO();
- }
- void NONO()
- {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
- FILE *fp, *wf ;
- int i, j ;
- double b[10], r ;
- fp = fopen("in.dat","r") ;
- wf = fopen("out.dat","w") ;
- for(i = 0 ; i < 10 ; i++) {
- for(j = 0 ; j < 10 ; j++) {
- fscanf(fp, "%lf ", &b[j]) ;
- }
- r = fun(b, 10) ;
- fprintf(wf, "%f\n", r) ;
- }
- fclose(fp) ;
- fclose(wf) ;
- }
复制代码 |
|