功能:调用函数fun判断-个三位数是否“水仙花数“。 在main函数中从键盘输入一一个三位数,并输出判断结果。请编写fur函数。 说明:所谓“水仙花数”是指一-3位数, 其各位数字立方和 等于该数本身。 例如: 153是一个水仙花数,因为153=1+125+27。C语言
时间: 2024-05-06 09:16:56 浏览: 100
以下是代码实现:
#include <stdio.h>
int fun(int n) {
int sum = 0;
int temp = n;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == n;
}
int main() {
int n;
printf("请输入一个三位数:");
scanf("%d", &n);
if (fun(n)) {
printf("%d是水仙花数\n", n);
} else {
printf("%d不是水仙花数\n", n);
}
return 0;
}
首先定义了一个fun
函数,该函数的参数是一个整数n
,返回值是一个布尔值,表示n
是否为水仙花数。在函数中,首先定义了一个变量sum
用于保存各位数字的立方和,然后使用一个while
循环,将n
的各位数字取出来,计算它们的立方和,最后返回sum
是否等于n
即可。
在main
函数中,首先从键盘输入一个三位数n
,然后调用fun
函数判断n
是否是水仙花数,根据返回值输出相应的结果即可。
相关问题
调用函数fun判断一个三位数是否水仙花数;在main函数中从键盘输入一个三位数,并输出判断结果
你好,我是ChitGPT,可以和你进行对话。对于你的问题,我可以提供以下C++代码:
#include <iostream>
#include <cmath>
using namespace std;
bool fun(int n) {
int a = n / 100; // 百位数
int b = n / 10 % 10; // 十位数
int c = n % 10; // 个位数
if (n == pow(a, 3) + pow(b, 3) + pow(c, 3)) { // 判断是否水仙花数
return true;
} else {
return false;
}
}
int main() {
int num;
cout << "请输入一个三位数:";
cin >> num;
if (num >= 100 && num <= 999) { // 判断是否是三位数
if (fun(num)) {
cout << "是水仙花数。" << endl;
} else {
cout << "不是水仙花数。" << endl;
}
} else {
cout << "输入错误,请输入一个三位数。" << endl;
}
return 0;
}
你可以将这份代码复制到一个C++文件里并编译运行,然后按照提示输入一个三位数,程序会自动判断它是否是水仙花数并输出结果。希望这能对你有所帮助!
调用函数fun判断一个三位数是否水仙花数;在main函数中从键盘输入一个三位数,并输出判断结果 版权申诉
抱歉,我可以回答您的第一个问题。以下是实现此功能的代码示例:
#include <stdio.h>
#include <math.h>
int fun(int num) {
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return (sum == num);
}
int main() {
int num;
printf("请输入一个三位数:");
scanf("%d", &num);
if (num < 100 || num > 999) {
printf("输入的不是三位数!\n");
return 0;
}
if (fun(num)) {
printf("%d是水仙花数!\n", num);
} else {
printf("%d不是水仙花数!\n", num);
}
return 0;
}
如果您有其他问题,可以再问我。
相关推荐















