编写C语言程序找出所有的"水仙花数"(各个位上的立方和是它本身,三位数)。 1.绘制流程图。 2.编写程序。
时间: 2024-09-24 15:05:55 浏览: 58
1. **绘制流程图**:
- 首先,我们可以画出如下的简单流程图来表示这个过程:
```
+----------------+
| |
V |
输入范围(100~999)|
| v
+--------+--------+
| 判断是否是水仙花数
V
计算各数字立方和
| |
V V
检查和 == 数字本身? 是 -> 打印
否 -> 继续下一个数字
+----------------+
| |
V |
输出结果或结束 |
+----------------+
```
2. **编写C语言程序**:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_armstrong(int num) {
int original_num = num;
int sum = 0, digit;
while (num != 0) {
digit = num % 10;
sum += pow(digit, 3); // 计算立方和
num /= 10;
}
return sum == original_num; // 比较原数和其立方和是否相等
}
int main() {
int start = 100, end = 999;
printf("查找100到999之间的水仙花数:\n");
for (int i = start; i <= end; ++i) {
if (is_armstrong(i)) {
printf("%d 是水仙花数.\n", i);
}
}
return 0;
}
```
在这个程序中,`is_armstrong` 函数负责检查一个给定的整数是否为水仙花数,`main`函数则遍历指定范围内的所有三位数,并使用 `is_armstrong` 进行判断。如果找到符合条件的数,就打印出来。
阅读全文