代码逻辑错误找不出来呀,求解救


求回答,来个大神跟我说说我的逻辑错在哪里了吧
#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;