编写一个函数int fun(int a),函数的功能是判断一个三位数a是否为水仙花数。 在主函数中通过调用fun函数,输出[100,999]之间所有的水仙花数。 提示:函数返回值可以取1或0表示是或否。 水仙花数是三位数,它的每一位数字的立方和等于这个数本身。 如153=1*1*1+5*5*5+3*3*3,因此153是水仙花数。C语言
时间: 2024-03-06 17:49:55 浏览: 65
好的,以下是符合您要求的C语言代码:
```c
#include <stdio.h>
int fun(int a);
int main() {
int i;
for (i = 100; i <= 999; i++) {
if (fun(i)) {
printf("%d\n", i);
}
}
return 0;
}
int fun(int a) {
int sum = 0;
int temp = a;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == a ? 1 : 0;
}
```
函数`fun`判断一个三位数a是否为水仙花数,函数返回值为1表示是水仙花数,返回值为0表示不是水仙花数。
在主函数中通过调用`fun`函数,输出[100,999]之间所有的水仙花数。
相关问题
在c语言中编写一个函数int fun(int a),函数的功能是判断一个三位数a是否为水仙花数。 在主函数中通过调用fun函数,输出[100,999]之间所有的水仙花数。 提示:函数返回值可以取1或0表示是或否。 水仙花数是三位数,它的每一位数字的立方和等于这个数本身。 如153=1*1*1+5*5*5+3*3*3,因此153是水仙花数。
好的,这是一个简单的题目,可以使用以下的代码实现:
```c
#include <stdio.h>
int fun(int a) {
int b = a / 100; // 获取百位数
int c = a % 100 / 10; // 获取十位数
int d = a % 10; // 获取个位数
if (a == b * b * b + c * c * c + d * d * d) { // 判断是否是水仙花数
return 1;
} else {
return 0;
}
}
int main() {
for (int i = 100; i <= 999; i++) {
if (fun(i)) { // 判断是否是水仙花数
printf("%d\n", i); // 输出水仙花数
}
}
return 0;
}
```
在上面的代码中,我们先定义了一个 `fun` 函数来判断一个三位数是否是水仙花数。在 `main` 函数中,我们通过循环,依次判断 [100,999] 之间的每一个三位数是否是水仙花数,如果是,就输出该数。
15.编写一个函数int fun(int a),函数的功能是判断一个三位数a是否为水仙花数。 在主函数中通过调用fun函数,输出[100,999]之间所有的水仙花数。 提示:函数返回值可以取1或0表示是或否。 水仙花数是三位数,它的每一位数字的立方和等于这个数本身。 如153=1*1*1+5*5*5+3*3*3,因此153是水仙花数。
好的,这是一个简单的题目,可以使用以下的代码实现:
```c
#include <stdio.h>
int fun(int a) {
int b = a / 100; // 获取百位数
int c = a % 100 / 10; // 获取十位数
int d = a % 10; // 获取个位数
if (a == b * b * b + c * c * c + d * d * d) { // 判断是否是水仙花数
return 1;
} else {
return 0;
}
}
int main() {
for (int i = 100; i <= 999; i++) {
if (fun(i)) { // 判断是否是水仙花数
printf("%d\n", i); // 输出水仙花数
}
}
return 0;
}
```
在上面的代码中,我们先定义了一个 `fun` 函数来判断一个三位数是否是水仙花数。在 `main` 函数中,我们通过循环,依次判断 [100,999] 之间的每一个三位数是否是水仙花数,如果是,就输出该数。
阅读全文