问答详情
源自:4-9 循环结构之for循环(二)

for循环

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

}

问题:

  1. 为什么表达式二的num<1000不能写成num<=999

  2. 为什么if中的语句我写成num==sd*sd*sd+td*td*td+hd*hd*hd就提交不了

提问者:花开半夏123 2016-11-09 23:47

个回答

  • zhonggang4234975
    2016-11-10 10:49:26
    已采纳

    我复制了上面的代码,运行的结果为:

    水仙花数字:153
    水仙花数字:370
    水仙花数字:371
    水仙花数字:407

  • 聊发少年狂
    2016-11-10 16:17:53

    你应该是用的慕课网自带的编辑器吧,他们内部有关键代码验证功能,虽然你改了代码和原文运行结果一样,但是网站检测不到关键代码就会报错,和代码无关,你可以自己下一个软件http://img.mukewang.com/58242d2100015d7f04080214.jpg跑一下就知道了。

  • zhonggang4234975
    2016-11-10 10:53:55

    右边的输出窗口中会给出出错信息,你可以看一下提示哪里出错了。

  • zhonggang4234975
    2016-11-10 08:10:30

    请检查:分号是否错用了全角形式;<=和==中间是否多了空格(< =,= =).