为什么输入a和n后三个printf全输出了

#include <stdio.h>
int main()
{
int a,n,x,y;
int b,c,d;
scanf("%d %d",&a,&n);
x=0;y=1;
while(x<n)
{
x+=1;
y=y*a;
}

if(y<1000&&y!=1)
{printf("The last 3 numbers is %d.",y);}
if(y=1);
{
printf("The last 3 numbers is 1.");}
if(y>=1000&&y!=1);
{

b=y%10;
c=y/10%10;
d=y/100%10;
printf("The last 3 numbers is %d%d%d.",d,c,b);

}

}

因为你的if后面有分号。

img


而且不能写成y=1 应该写成y==1

因为用的是三个if,改成if-else