以下是用C语言实现输出m~n之间的所有水仙花数的代码:

#include <stdio.h>
#include <math.h>

int is(int number) {
    int temp = number;
    int sum = 0;
    int digit;

    while (temp > 0) {
        digit = temp % 10;
        sum += pow(digit, 3);
        temp /= 10;
    }

    if (sum == number) {
        return 1;
    } else {
        return 0;
    }
}

int main() {
    int m, n;

    printf("请输入两个正整数(m 和 n,2 ≤ m,n ≤ 1000):");
    scanf("%d %d", &m, &n);

    printf("m~n之间的水仙花数有:\n");
    for (int i = m; i <= n; i++) {
        if (is(i)) {
            printf("%d\n", i);
        }
    }

    return 0;
}

首先,我们定义了一个名为is的函数,接受一个整数参数number。在函数内部,我们使用一个while循环来计算number的各位数字的立方和。首先,我们将number存储在一个临时变量temp中,然后使用取余运算和整除运算获取各个位的数字,并将其立方加入sum中。最后,我们将sumnumber进行比较,如果相等,则返回1,表示number是水仙花数;否则,返回0,表示number不是水仙花数。

main函数中,我们声明了两个整数变量mn,用于存储用户输入的范围。使用printf函数提示用户输入两个正整数,并使用scanf函数将输入值存储在mn中。

然后,我们使用for循环遍历mn之间的所有数字,并调用is函数来判断每个数字是否是水仙花数。如果是水仙花数,则使用printf函数输出该数字。

编译并运行代码,你将能够输入两个正整数,然后输出m~n之间的所有水仙花数。输出结果将逐行显示水仙花数。

C语言实现水仙花数判断及输出

原文地址: https://www.cveoy.top/t/topic/bkNI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录