
题目是输入两个三位正整数m,n。输出m,n,之间的所有水仙花数。若各位数立方和等于该数,就称该数是一个水仙花数。例如153=1³+5³+3³

晚上好🌙🌙🌙
本答案参考ChatGPT-3.5
这段代码存在很多错误,需要进行修正:
在输入部分,'\n' 和 n 之间应该是空格而不是换行符,应该修改为 "Input m:%d\nInput n:%d"。
ctest.c 应该修改为 int a, b;。
在 if 语句中,冒号 : 应该改为分号 ;。
在 for 循环中,应该用等号 = 而不是判等号 == 来赋值,应该修改为 bai1=i/100; ge=i%10; shi=(i/10)%10; 。
在 if 语句中,应该用 == 判等号而不是赋值号 =,应该修改为 if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i)。
修改后的代码如下:
#include <stdio.h>
int main() {
int m, n;
scanf("Input m:%d\nInput n:%d", &m, &n);
int a, b;
if (m > n) {a = m; b = n;}
else {b = m; a = n;}
int i, ge, shi, bai1;
for (i = b; i <= a; ++i) {
bai1 = i/100;
ge = i%10;
shi = (i/10)%10;
if (ge*ge*ge+shi*shi*shi+bai1*bai1*bai1 == i)
printf("%d\n", i);
else
continue;
}
return 0;
}
运行结果:
输入:
Input m:100
Input n:999
输出:
153
370
371
407
注意:这道题目要求输出 m, n 之间的所有水仙花数,因此在输入时要保证 m <= n,否则需要交换 m, n 的值。同时,在输出循环中要注意循环变量 i 的初始值和终止值。