
要输出水仙花数
代码运行没有提示,是不是循环那里出错了,按道理应该是有四个数字的,但是只输出了407
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
根据你提供的代码片段,我注意到了一些问题。这可能是导致循环只输出一个数字的原因。下面是代码的修正版本:
#include <stdio.h>
int main() {
int i, x1, x2, x3;
for (i = 100; i <= 999; i++) { // 注意这里的加号'+'应该是一个右花括号'}'
x1 = i % 10; // 修改这里,获取个位数
x2 = i / 10 % 10; // 修改这里,获取十位数
x3 = i / 100; // 修改这里,获取百位数
if (i == x1 * x1 * x1 + x2 * x2 * x2 + x3 * x3 * x3) {
printf("%6d", i); // 输出水仙花数,注意这里应该有一个换行符'\n',否则所有输出会在一行显示
}
}
return 0;
}
你的原始代码中有几个问题需要修复:
for循环中的i+应该是i++或者i)。x1 = i % 10,x2 = i / 10 % 10和x3 = i / 100。原来的代码没有正确获取各个位数。\n,这样每个水仙花数会单独在一行输出。修复这些问题后,代码应该可以正确地输出所有的水仙花数。