编译问题一直是warning运行不了

img

-代码如下

#include<stdio.h>
#include<math.h>
int main()
{
int N;
scanf("%d",&N);
int x,y,a;
int z=0;
x =  pow(10,N);//最小
y = pow(10,(N+1));//最大
while(x<y)
{
    while(x>0)
    {
      a=x%10;
      z=z+pow(a,N);
      x=x/10;
    }
    if(x==z)
    {printf("%d\n",x);}
    x=x+1;
}
return 0;
}

题主的代码修改如下:

#include<stdio.h>
#include<math.h>
int main()
{
    int N;
    scanf("%d", &N);
    int x, y, a;
    int z = 0, k, flg = 0;  //修改
    x = (int)pow(10, (double)(N - 1));//x = pow(10, N);//最小
    y = (int)pow(10, (double)N);//最大//y = pow(10, (N + 1));//最大
    while (x < y)
    {
        k = x; z = 0;     //修改
        while (k > 0)
        {
            a = k % 10;
            z = z + (int)pow(a, (double)N);//修改
            k = k / 10;
        }
        if (x == z)
        {
            printf(flg++ == 0 ? "%d" : "\n%d", x);//修改
        }
        x = x + 1;
    }
    return 0;
}