C语言程序设计用循环语句输入十个数,去掉最大值和一个最小值,求平均值

如题所述

#include <stdio.h>
float Average(float a[]);
int main(void)
{
float a[10];
for(int i = 0;i < 10;i++)
{
printf("输入第%d个数:\n",i+1);
scanf("%f",&a[i]);
}
printf("去掉最大最小值后的平均值为: %.2f\n",Average(a));
return 0;
}
float Average(float a[])
{
float sum = 0.0,max = a[0],min = a[0];
for(int x = 0;x <= 9;x++)
{
if(a[x] > max) max = a[x];
if(a[x] < min) min = a[x];
sum += a[x];
}
return (sum-max-min)/8;
}
祝:学业有成.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-20
题目不太严谨!!!或者就是陷阱!!

“去掉最大值和一个最小值”,最大值的前面为什么没有加入“一个”,如果是两个或以上的数相同并且最大,是去掉一个还是都去掉?这是个问题。
当然,这也许有些吹毛求疵,呵呵。
第2个回答  2010-04-23
#include<stdio.h>
void main(){
float num[10],max,min,ave=0;
int i;
printf("请输入十个数:");
for(i=0;i<10;i++)
scanf("%f",&num[i]);
max=num[0];
min=num[1];
for(i=0;i<10;i++){
if(num[i]>max)
max=num[i];
if(num[i]<min)
min=num[i];
ave+=num[i];
}
ave=(ave-min-max)/8;
printf("去掉一个最大值和最小值的平均值为:%f",ave);
}

已经运行过,No Problem!
第3个回答  2010-04-21
#include<stdio.h>
void main()
{
int a[10];
int i, max=0, min=0;
float sum=0, avg=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
min=a[0];
for(i=0;i<10;i++)
{if(a[i]>=max) max=a[i];
else min=a[i];}
for(i=0;i<10;i++)
sum+=a[i];
sum=sum-max-min;
avg=sum/8;
printf("%d,%d,%f,%f",max,min,sum,avg);
}
第4个回答  2010-04-20
是不是作业呀?
相似回答