求回答,来个大神跟我说说我的逻辑错在哪里了吧
#include
#include
int main()
{
int n,i=0;
double x,max,aver,min,sum=0;
scanf("%d",&n);
max=x;
min=x;
while(i i+=1;
scanf("%lf",&x);
if(x>max)
{
max=x;
}
if(x<min){
min=x;
}
sum+=x;
}
aver=(sum-max-min)*0.1/(n-2)*10;
printf("%.2lf\n",aver);
return 0;
}
一开始x都没输入怎么可以将它赋给max,min呢
#include<stdio.h>
int main()
{
int n, i = 0;
double x, max, aver, min, sum = 0;
scanf("%d", &n);
while (i < n){
i += 1;
scanf("%lf", &x);
if (i == 1) { //在循环的第一次,用输入的值初始化max,min
max = x;
min = x;
}
else if (x > max)
{
max = x;
}
else if (x < min) {
min = x;
}
sum += x;
}
aver = (sum - max - min)*0.1 / (n - 2) * 10;
printf("%.2lf\n", aver);
return 0;
}
int n, i = 0;
double x, max, aver, min, sum = 0;
scanf("%d", &n);
max = 0;
min = 99999999;
while ( i < n )
{
i += 1;
scanf("%lf", &x);
if (x > max)
{
max = x;
}
if (x < min){
min = x;
}
sum += x;
}
aver = (sum - max - min)/ (n - 2);
printf("%.2lf\n", aver);
return 0;