用c语言编写两个函数 ,一个判断给定整数是否为水仙花数,另一个按从小到大的顺序打印出给定区间内所有的水仙花数
时间: 2023-11-27 16:53:13 浏览: 154
以下是两个函数的实现:
```c
#include <stdio.h>
#include <math.h>
// 判断一个整数是否为水仙花数
int isNarcissisticNumber(int n) {
int sum = 0, temp = n, digits = 0;
while (temp != 0) {
digits++;
temp /= 10;
}
temp = n;
while (temp != 0) {
sum += pow(temp % 10, digits);
temp /= 10;
}
return sum == n;
}
// 按从小到大的顺序打印出给定区间内所有的水仙花数
void printNarcissisticNumbers(int start, int end) {
int i;
for (i = start; i <= end; i++) {
if (isNarcissisticNumber(i)) {
printf("%d ", i);
}
}
printf("\n");
}
int main() {
int start, end;
printf("请输入区间的起始值和终止值:");
scanf("%d %d", &start, &end);
printf("%d到%d之间的水仙花数有:\n", start, end);
printNarcissisticNumbers(start, end);
return 0;
}
```
在 `isNarcissisticNumber` 函数中,我们先计算出这个整数的位数 `digits`,然后在循环中计算每一位的 `digits` 次方并累加到 `sum` 中。最后判断 `sum` 是否等于原始整数即可。
在 `printNarcissisticNumbers` 函数中,我们遍历给定区间内的所有整数,判断是否为水仙花数,如果是则打印出来。
阅读全文
相关推荐

















