【发布时间】:2017-11-13 02:51:48
【问题描述】:
我有这个 C 程序需要计算用户输入的圆的面积。 我必须在 main 函数之前使用它:
void area_circum(double radius, double *area, double *circum);
我无法让程序运行。我正在使用 main 函数和另一个名为 area_circum();
这就是我现在拥有的:
#include <stdio.h>
void area_circum(double radius, double *area, double *circum);
int main(void) {
double radius, area, circum;
printf("Please enter the radius of the circle: ");
scanf("%f", &radius);
area_circum(radius, area, circum);
printf("Area of circle : %0.4f\n", area);
return 0;
}
void area_circum(double radius, double *area, double *circum) {
double PIE = 3.141;
double areaC = 0;
areaC = PIE * radius * radius;
}
当我构建并运行它时,它可以工作,我输入一个数字,但它返回 0.00
【问题讨论】:
-
请获取任何关于 C 的教科书并查看
main的签名。阅读第一章时也从第二章开始 -
修复this
-
谢谢@BLUEPIXY。我看到我不应该在主函数参数中传递任何东西。
-
main()的参数列表是……嗯,这不仅是非正统的,而且是错误的。这些参数应该是main()中的局部变量,您应该使用int main(void)。此外,您希望area和circum是普通的double,而不是double *;你将&area和&circum传递给函数——它们是指针。 (你['已经修改了main()的签名——因为没有答案,没关系。你没有注意编译器警告。在这个阶段,如果编译器抱怨,你的代码中有错误。在运行之前修复它。) -
scanf("%f", &radius)是类型错误(scanf%f采取什么?&radius的类型是什么?)。area_circum是一个空操作:它设置了一个从不读取的局部变量,它忽略了它的两个参数。