判断一个数是否为水仙花数
问题 输入任意数,最后结果都是运行 if的是
因为第一个while循环结束后你的tem变量的值变成0了,所以第二个while循环根本就没进去,所以tem一直为0,而sum的值因为没有进行第二个的while循环所以也为0,所以无论你输入多少到if判断都是0==0,所以一直在输出 是
供参考:
#include<stdio.h>
#include<math.h>
int main()
{
int N,i,p,t,sum,n,m,k;
scanf("%d",&N); //输入位数 <= 7位
for(i = pow(10,N-1),p = pow(10,N);i < p;i++){
for(sum = 0,t = i;t > 0;t /= 10)
{
m = N;k = 1;
n = t % 10;
while(m--) k *= n;
sum += k;
}
if(sum == i)
printf("%d\n",i);
}
return 0;
}
#include <stdio.h>
int main(){
int tem;
printf("请输入一个整数:");
scanf("%d",tem);
int n=0,sum=0,m=0,h=0;
n=tem/100;
m=tem%100/10;
h=tem%100%10;
sum=n*n*n+m*m*m+h*h*h;
if(sum==tem){
printf("是");
}else{
printf("no");
}
}
这个代码是正确的
#include <stdio.h>
int main(){
int tem;
printf("请输入一个整数:");
scanf("%d",&tem);
int n=0,sum=0,m=0,h=0;
n=tem/100;
m=tem%100/10;
h=tem%100%10;
sum=n*n*n+m*m*m+h*h*h;
if(sum==tem){
printf("是");
}else{
printf("no");
}
}