|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Max 和min 的初始值都应该设置成 a[0] 然后遍历数组,更新max 和 min
#include<stdio.h>
int main() {
int a[7],b,c,d,i;
double sum,max,min;
c=1;
d=1;
for(i=0; i<=6; i++) {
scanf("%d",&a[i]);
sum+=a[i];
}
for(b=0; b<=6; b++) {
if(a[b]>a[c])
c=b;
}
max=a[c];
for(b=0; b<=6; b++) {
if(a[b]<a[d])
d=b;
}
min=a[d];
printf("%.3f",(sum-max-min)/5);
return 0;
}
你的代码有错误
- 1, scanf("%d",&a); --> scanf("%d",&a[i]);
- 2, sum+=a; --> sum+=a[i];
- 3, if(a>a[c]) --> if(a[b]>a[c])
- 4, if(a<a[d]) --> if(a[b]<a[d])
复制代码
楼主的代码逻辑不是很清楚,可以精减很多,如下
- int main() {
- int a[7], i;
- double sum, max = 0, min = 999;
- for (i = 0; i < 7; i++) {
- scanf("%d", &a[i]);
- sum += a[i];
- }
- for (i = 0; i < 7; i++) {
- if (a[i] >= max)
- max = a[i];
- if (a[i] <= min)
- min = a[i];
- }
- printf("%.3f", (sum - max - min) / 5);
- return 0;
- }
复制代码
|
|