水仙花數(shù)的bug
#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("以上為所有水仙花數(shù)");
??? return 0;
}
為什么這個輸出水仙花的代碼,在if后的條件中只打一個等號會輸出1、8、729、370、371、378、1099這幾個數(shù)字,而打兩個等號就輸出的是對的呢?
2016-11-05
兩個等號在c語言里是判斷符號(判斷等號兩邊是否相等,返回值只有1或0),而一個等號則為賦值符號,將右邊的值賦值給左邊。