求解 为什么输入不同数值都等于0

#include<stdio.h>
int main()
{
float x, y;
printf("输入x的值:");
scanf_s("%f", &x);
if (x > 0)printf("y=2x+1");
else if (x = 0)printf("y=0");
else if (x < 0)printf("y=-x-1");
printf("y=%f\n", &y);
return 0;
}

else if (x = 0)printf("y=0"); 改成 else if (x == 0)printf("y=0");


#include<stdio.h>
int main()
{
float x, y;
printf("输入x的值:");
scanf_s("%f", &x);
if (x > 0)printf("y=2x+1");
else if (x == 0)printf("y=0");
else if (x < 0)printf("y=-x-1");
printf("y=%f\n", &y);
return 0;
}

x==0