利用while从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。 输入90 80.5 85 -1输出amax=90 amin=80.5

为什么能输出最大值,最小值却是0?
#include
using namespace std;
int main()
{
int i=1;
float a,d,x;
d=a,x=a;
while(1)
{
scanf("%f",&a);
if(a>=0)
{
if(a>d)d=a,x=x;
if(a
if(a>=x&&a<=d);d=d,x=x;
}
if(a<0)goto End;
}
End:
printf("amax=%f\namin=%f",d,x);
}

#include <stdio.h>

int main()
{

    float a=0,max=0,min=0;
    while(1)
    {
        scanf("%f",&a);
        if(a>=0)
        {
           if(a>max) max=a;
           else if(min==0||a<min) min=a;
        }
        if(a<0) break;
    }
    printf("amax=%f\namin=%f",max,min);
    return 0;
}