#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这几个数字,而打两个等号就输出的是对的呢?
两个等号在c语言里是判断符号(判断等号两边是否相等,返回值只有1或0),而一个等号则为赋值符号,将右边的值赋值给左边。