C语言输入两个整数m和n,两数之间以空格分开,且满足100≤m<n≤999,如果输入的两个整数之间的所有数中有仙花数,则按从小到大的顺序输出水仙花数,如果没有,则输出no怎么写
时间: 2024-12-22 13:12:54 浏览: 7
在C语言中编写这个程序,你需要先检查数字是否是水仙花数(即一个三位数,其各位数字立方和等于该数本身),然后在给定范围内查找并输出所有的水仙花数。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断是否为水仙花数
bool is narcissistic(int num) {
int digits[3], sum = 0;
while (num > 0) {
digits[2] = num % 10; // 取最后一位
num /= 10;
for (int i = 0; i < 3 && digits[i] != 0; i++) {
sum += digits[i] * digits[i] * digits[i];
}
}
return sum == num;
}
int main() {
int m, n;
printf("请输入范围(100 <= m < n <= 999): ");
scanf("%d %d", &m, &n);
if (m >= 100 && n <= 999 && m < n) { // 检查输入范围
bool found = false;
for (int i = m; i < n; i++) {
if (is_narcissistic(i)) {
printf("%d ", i);
found = true;
}
}
if (!found) {
printf("no");
}
} else {
printf("输入错误,请按照提示重新输入。\n");
}
return 0;
}
```
阅读全文