编写函数fun(n),n为三位自然数,判断n是否为水仙花数,是返回1,否返回0,并返回判断结果。编写main函数,输出一个数num,调用fun(num),并分析函数
时间: 2024-06-13 13:08:38 浏览: 112
以下是符合要求的回答:
```c
#include <stdio.h>
#include <math.h>
int fun(int n) {
int m, s = 0, k;
m = n;
while (m) {
k = m % 10;
s += k * k * k;
m /= 10;
}
return s == n;
}
int main() {
int num, f;
printf("输入一个数:");
scanf("%d", &num);
f = fun(num);
if (f == 1) {
printf("%d是水仙花数!", num);
} else {
printf("%d不是水仙数!", num);
}
return 0;
}
```
函数fun的作用是判断一个三位数是否为水仙花数,如果是则返回1,否则返回0。在函数中,首先将输入的三位数n赋值给变量m,然后使用while循环,每次取出m的个位数k,计算k的立方并加到变量s中,最后将m除以10,去掉个位数。当循环结束后,如果s等于n,则说明n是水仙花数,返回1,否则返回0。
在主函数main中,首先输入一个三位数num,然后调用函数fun(num)判断num是否为水仙花数,并将返回值赋给变量f。最后根据f的值输出判断结果。
相关问题:
相关问题
编写函数fun(n),n为三位自然数,判断n是否为水仙花数,是返回1,否返回0。编写main函数,输入一个数num,调用fun(num)函数,并输出判断结果。
```
#include <stdio.h>
int fun(int n) {
int sum = 0, temp = n;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == n) {
return 1;
} else {
return 0;
}
}
int main() {
int num;
printf("请输入一个三位自然数:");
scanf("%d", &num);
if (fun(num)) {
printf("%d是水仙花数\n", num);
} else {
printf("%d不是水仙花数\n", num);
}
return 0;
}
```
阅读全文