ashley325 2021-11-02 10:25 采纳率: 100%
浏览 29
已结题

编译问题一直是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;
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-11-02 10:49
    关注

    题主的代码修改如下:

    #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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月6日
  • 已采纳回答 11月28日
  • 创建了问题 11月2日