int n,g,s,b;
for(n=100;n<1000;n++)
{
g=n%10;
s=(n/10)%10;
b=n/100;
n=g*g*g+s*s*s+b*b*b;
printf("%5d",n);
}
system("pause");
为什么n=g*g*g+s*s*s+b*b*b;一定要写成if(n==g*g*g+s*s*s+b*b*b)才正确?
因为n是用在for循环的变量。
因为n是用在for循环的变量。
你要做的不就是判断n是不是水仙花数么,所以一定是用if语句判断的啊,n=g*g*g+s*s*s+b*b*b是赋值语句判断必须是if(n==g*g*g+s*s*s+b*b*b)的,或是三目运算符(a==b?a:b)。
n=g*g*g+s*s*s+b*b*b;
这个是赋值,把g*g*g+s*s*s+b*b*b的计算结果复制给n。
if(n==g*g*g+s*s*s+b*b*b)
这个是判断,判断n和g*g*g+s*s*s+b*b*b的值是否相等。
=是赋值,==是判断是否相等
比如
int i = 1;
int j = i = 2;
此时j = 2; i = 2;
int i = 1;
int j = i == 2;
此时j = 0(false); i = 1;