C语言水仙花数程序解析及错误修正
你的代码几乎是正确的,但有一个小问题。在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
原文地址: https://www.cveoy.top/t/topic/Q5h 著作权归作者所有。请勿转载和采集!