马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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) ;
}
|