C语言求水仙花数错误,望指点

img

item是for循环变量,不要用item去操作。另外求3次方是pow(i,3)。完整代码修改如下

#include <stdio.h>
#include <math.h>
int main()
{
    int n;
    scanf("%d",&n);
    if (n>=3 && n<=7)
    {
        int item,sum;
        int i,j;
        int m = pow((double)10,n);
        for (item = pow((double)10,(n-1));item<m;item++)
        {
            sum = 0;
            int p = item;
            //这下面的修改了
            while(p)
            {
                i =  p%10;
                sum += pow((double)i,3);
                p/=10;
            }
            if(item == sum)
                printf("%d\n",item);
        }
    }else{
        printf("Please put in the right number!");
    }
    return 0;
}



把代码贴出来,方便调试。

17、18行将item改为p
22行将p改为item
23行改为printf("%d ",item);