水仙花数的bug

来源:4-9 循环结构之for循环(二)

代码是诗是歌是山川是江河是春风不如你

2016-11-05 07:45

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num,sw,gw,bw;
    for(num=100;num<1000;num++)
    {
        gw=num%10;
        sw=(num%100)/10;
        bw=num/100;
        if(num=gw*gw*gw+bw*bw*bw+sw*sw*sw)
        {
            printf("%d\n",num);
        }
    }
    printf("以上为所有水仙花数");
    return 0;
}



为什么这个输出水仙花的代码,在if后的条件中只打一个等号会输出1、8、729、370、371、378、1099这几个数字,而打两个等号就输出的是对的呢?

写回答 关注

1回答

  • Wolfit4351993
    2016-11-05 08:47:38
    已采纳

    两个等号在c语言里是判断符号(判断等号两边是否相等,返回值只有1或0),而一个等号则为赋值符号,将右边的值赋值给左边。

    代码是诗是歌...

    非常感谢!

    2016-11-15 00:42:05

    共 2 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题