#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;
}
问题:
为什么表达式二的num<1000不能写成num<=999
为什么if中的语句我写成num==sd*sd*sd+td*td*td+hd*hd*hd就提交不了
我复制了上面的代码,运行的结果为:
水仙花数字:153
水仙花数字:370
水仙花数字:371
水仙花数字:407
你应该是用的慕课网自带的编辑器吧,他们内部有关键代码验证功能,虽然你改了代码和原文运行结果一样,但是网站检测不到关键代码就会报错,和代码无关,你可以自己下一个软件跑一下就知道了。
右边的输出窗口中会给出出错信息,你可以看一下提示哪里出错了。
请检查:分号是否错用了全角形式;<=和==中间是否多了空格(< =,= =).