编程序实现.输入5个实数,去掉一个最大值,去掉一个最小值,求其他三个数的平均

#include<stdio.h>

int main()

{

int i;

float j,a[6];

for(i=1;i<=5;i++) scanf("%f",&a[i]);

a[0]=a[1];

a[6]=a[1];

for(i=2;i<=5;i++) {if(a[i]>a[0]) a[0]=a[i];}

for(i=2;i<=5;i++) {if(a[i]<a[0]) a[6]=a[i];}

j=(a[1]+a[2]+a[3]+a[4]+a[5]-a[0]-a[6])/3;

printf("去掉最大最小值后的平均数:%.1f",j);

}

哪里出问题了

a[6]数组中a[6]个元素是不能赋值的,因为最后一个元素要储存‘\0’按你的思路需要把数组扩充到a[7]这样能储存7个int值(7个元素循环中不至于把中间想要留下的值覆盖掉),但是最好利用其它int n,m之类的记录a[0]值这样容易阅读。

最后结果用for语句也更好看一点。还有不需要减去a[0]和a[6]吧。追问

输入整数,答案正确。
输入小数,答案有偏差
怎么回事啊

温馨提示:答案为网友推荐,仅供参考
相似回答