用c语言实现判断从键盘输入的N位数是不是水仙花数 输入格式: 输入一个不超过7位的正整数 输出格式: 按N是水仙花数或N不是水仙花数输出。
时间: 2024-04-10 09:33:03 浏览: 22
可以使用以下代码来实现判断一个N位数是否为水仙花数:
```c
#include <stdio.h>
#include <math.h>
int isArmstrongNumber(int number) {
int temp, remainder, n = 0;
double result = 0.0;
temp = number;
// 计算位数
while (temp != 0) {
temp /= 10;
++n;
}
temp = number;
// 计算各位数字的 n 次幂和
while (temp != 0) {
remainder = temp % 10;
result += pow(remainder, n);
temp /= 10;
}
// 判断是否为水仙花数
if ((int)result == number)
return 1;
else
return 0;
}
int main() {
int number;
printf("请输入一个不超过7位的正整数:");
scanf("%d", &number);
if (isArmstrongNumber(number))
printf("%d是水仙花数\n", number);
else
printf("%d不是水仙花数\n", number);
return 0;
}
```
这段代码中,我们首先定义了一个函数 `isArmstrongNumber` 来判断一个数字是否为水仙花数。在主函数中,我们通过键盘输入一个正整数,然后调用 `isArmstrongNumber` 函数来进行判断,并输出结果。
注意,这段代码假设输入的数字是正整数且不超过7位。如果需要验证输入的合法性,还需要添加相应的输入校验逻辑。