c语言输入描述 两个正整数a 、b (100≤a≤b≤999 )输出描述 在一行里输出闭区间[a,b] 内的所有水仙花数,多个水仙花数按从小到大的顺序输出,中间用空格隔开,行末不允许有多余的空格。如果区间内没有水仙花数,那么输出NO。
时间: 2024-02-01 07:16:31 浏览: 105
C语言编程实现输出100—999之间的水仙花数
以下是一个简单的 C 语言程序,可以实现上述功能:
```c
#include <stdio.h>
// 判断一个数是否为水仙花数
int isNarcissistic(int n) {
int sum = 0, t = n;
while (t) {
int digit = t % 10;
sum += digit * digit * digit;
t /= 10;
}
return sum == n;
}
int main() {
int a, b;
scanf("%d%d", &a, &b);
int found = 0;
for (int i = a; i <= b; i++) {
if (isNarcissistic(i)) {
printf("%d ", i);
found = 1;
}
}
if (!found) {
printf("NO");
}
return 0;
}
```
程序中的 `isNarcissistic()` 函数用于判断一个数是否为水仙花数,如果是则返回 1,否则返回 0。主函数中使用 `scanf()` 函数读入两个正整数 `a` 和 `b`,然后使用 `for` 循环遍历 `[a, b]` 中的所有数,对于每个数,都调用 `isNarcissistic()` 函数判断是否为水仙花数,如果是,则输出该数,并将 `found` 标记变为 1。最后,如果找不到任何水仙花数,则输出 "NO"。
阅读全文