用c语言写一个程序。当你输入两个三位数时会输出范围内所有的水仙花数,若在两个数范围内没有水仙花数,则输出no。
时间: 2024-09-26 20:09:20 浏览: 34
在C语言中,我们可以编写一个简单的程序来找出并打印指定范围内的所有水仙花数。水仙花数是指一个n位正整数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个示例程序,它首先获取用户输入的最小和最大三位数,然后遍历这个范围内的每个数字,检查是否是水仙花数:
```c
#include <stdio.h>
#include <stdbool.h>
// 函数来计算一个数的各个位立方和
int sumOfCubes(int num) {
int cube_sum = 0;
while (num > 0) {
int digit = num % 10;
cube_sum += digit * digit * digit;
num /= 10;
}
return cube_sum;
}
// 主函数
int main() {
int start, end, current_num;
// 获取用户输入的范围
printf("请输入一个三位数范围,格式如:100-999\n");
scanf("%d-%d", &start, &end);
if (start >= 100 && end <= 999 && start <= end) {
printf("在范围 %d 到 %d 内的水仙花数有:\n", start, end);
for (current_num = start; current_num <= end; ++current_num) {
if (sumOfCubes(current_num) == current_num) {
printf("%d ", current_num);
}
}
if (sumOfCubes(current_num) != current_num) {
printf("\nno waterlily number found in the range.\n");
}
} else {
printf("无效的输入范围。\n");
}
return 0;
}
```
阅读全文