#include <stdio.h> int main() { int num, sd, td, hd; for( num=100 ; num<1000 ;num++ ) { hd = num/100 ; td =num%100/10 ; sd =num%100%10 ; if( num==sd*sd*sd+td*td*td+hd*hd*hd ) { printf("水仙花数字:%d\n", num); } } return 0; }
if
(num==sd*sd*sd+td*td*td+hd*hd*hd)这一行代码里的hd,td,sd不按顺序排就会提示输入错误。
你代码没错。你是提交作业显示错误吧
#include <stdio.h>
int main()
{
//定义三位数num,个位数sd,十位数td,百位数hd
int num, sd, td, hd;
//循环所有三位数
for(num = 100;num < 1000;num++)
{
//获取三位数字num百位上的数字
hd = num / 100;
//获取三位数字num十位上的数字
td = num % 100 / 10;
//获取三位数字num个位上的数字
sd = num % 10;
//水仙花数的条件是什么?
if(num == hd*hd*hd + td*td*td + sd*sd*sd)
{
printf("水仙花数字:%d\n", num);
}
}
return 0;
}