你的代码几乎是正确的,但有一个小问题。在C语言中,函数需要先进行声明或定义,然后才能在其他地方使用。所以在调用'cube'函数之前,需要提前声明一下。

下面是修改后的代码:

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

double cube(double num);

int main(){
    int a, b, c;
    
    for(int i=100; i<=999; i++){
        a = i / 100; // 获取百位数
        b = (i / 10) % 10; // 获取十位数
        c = i % 10; // 获取个位数
        
        if(cube(a) + cube(b) + cube(c) == i){
            printf("水仙花数有:%d\n", i);
        }
    }
    
    return 0;
}

double cube(double num){
    return pow(num, 3);
}

在这个修改后的代码中,我们在'main'函数之前声明了'cube'函数。这样,在'main'函数中调用'cube'函数时就不会报错了。

另外,我们还将'main'函数的返回类型从'void'改为了'int',以符合C语言的函数定义规范。

输出结果为:

水仙花数有:153
水仙花数有:370
水仙花数有:371
水仙花数有:407
C语言水仙花数程序解析及错误修正

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

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