现要求输出所有在m和n范围内的水仙花数,用C语言编写
时间: 2024-10-28 16:10:13 浏览: 35
通过C语言实现用于查找给定范围内的水仙花数.rar
如果你想要输出指定范围内所有的水仙花数,可以在上面提到的`is_narcissistic`函数基础上进行修改,遍历并检查给定范围内的每一个数。下面是相应的代码:
```c
#include <stdio.h>
// 判断是否是水仙花数的辅助函数
int is_narcissistic(int num) {
int digits[4]; // 因为最大四位数的水仙花数,所以这里改为了数组长度为4
int sum = 0;
while (num != 0) {
digits[sum++] = num % 10;
num /= 10;
}
for (int i = 0; i < sum; i++) {
if (digits[i] * digits[i] * digits[i] != digits[i]) {
return 0;
}
}
return 1;
}
void print_narcissistic_numbers(int start, int end) {
for (int num = start; num <= end; num++) {
if (is_narcissistic(num)) {
printf("%d ", num); // 输出水仙花数
}
}
printf("\n");
}
int main() {
int m, n;
printf("Enter the range (start and end): ");
scanf("%d %d", &m, &n);
if (m > n) {
printf("Invalid range! Start should be less than or equal to End.\n");
return 0;
}
print_narcissistic_numbers(m, n);
return 0;
}
```
在这个代码中,我们添加了一个名为`print_narcissistic_numbers`的新函数,用于在给定的范围`[m, n]`内查找并打印水仙花数。注意这个函数现在可以处理四位数,因为我们假设输入的最大范围不超过四位数。
阅读全文