当我尝试编译程序时,我得到3条错误语句,其中2条与使用pow数学函数尝试对半径变量求平方有关。最后一条错误声明指出,我在第11行上缺少分号,但我看不到哪里。对于这些新手问题,我深表歉意,希望您能有所帮助。
我已经尝试过仅通过“ radius * radius”来获取radius ^ 2,而不是使用pow(radius,2,0);并且可以,但是我仍然收到“期望的第11行”错误。另外,对于我的任务,我需要使用pow函数,因此有必要让它正常工作。
#include <stdio.h> //Including standard library
double calculatingFunction(diameter) {
const double pi = 3.14159; //Declaring pi as a constant
double radius = diameter * 0.5; //Calculating radius
double circumference = 2 * pi * radius; //Calculating circumference
double area = pi * (pow(radius, 2.0)); //Calculating area
return (circumference, area); //returning values of circumference of area
}
//Beggning of main function
int main(void) {
//Prompting User for Input
printf("Please enter a value for the diameter of a circle");
double diameter; //Variable to store User's input
scanf("%lf", &diameter); //Scanning for User's input
//Final Output listing the calculated perimeter and area of circle
printf("\nPerimeter of Circle: %lf Area of Circle: %lf",
calculatingFunction(diameter));
return 0; //End of Program
}
homework.c: In function ‘calculatingFunction’:
homework.c:8: warning: implicit declaration of function ‘pow’
homework.c:8: warning: incompatible implicit declaration of built-in
function ‘pow’
homework.c:11: error: expected ‘;’ before ‘of’
我在代码上留下了注释,因此应该很清楚期望输出什么。该程序基本上是在输入用户的圆直径,然后从中计算出面积和周长。
答案 0 :(得分:1)
首先,第11行的错误是写入的单词区域,而没有表明它是注释。其次,pow
在<math.h>
内部定义。包括此选项最有可能解决问题,否则请参见this帖子。
最后,主要问题在于return语句。在C语言中,您必须创建一个结构以返回多个值,或使用指针参数。
typedef struct {
double circumference, area;
} data;
data calculatingFunction(double diameter) {
...
data ret = {circumference, area};
return ret; //returning values of circumference of area
}
还要将直径声明为double
,否则编译器通常会假定参数为int
。 double
似乎更适合此参数。
答案 1 :(得分:0)
pow()
is declared in <math.h>
.是否已将其包括在标题中?
(此外,您在第9-10行上的注释正在第二行上运行,转义了注释掉的部分,并导致编译器错误。)