qq_41525202 2020-03-16 19:49 采纳率: 0%
浏览 401

判断Armstrong 数,就是n位数的各位数的n次方之和等于该数,我感觉我写的我没问题呀,为什么在DEVc++中输入153判断的结果不是

#include
#include
#include

int main()
{
int i=0,a=0,temp,num,n=0,sum=0;
printf("请输入:");
scanf("%d",&num);
temp=num;
while(temp!=0){
temp/=10;
n++;
}

while(num!=0){
a=num%10;
num/=10;
i=pow(a,n);
sum=sum+i;

}
if(num==sum){
printf("是");
}
else
printf("不是");
return 0;
}

  • 写回答

1条回答 默认 最新

  • 时光放逐 2020-03-16 20:29
    关注

    在第二个while中你将num变成0了,之后num==sum自然就为false了

    评论

报告相同问题?