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);