[英]C Program for calculating area & perimeter of a circle won't compile
當我嘗試編譯程序時,我收到 3 個錯誤語句,其中 2 個與使用 pow 數學 function 嘗試對半徑變量求平方有關。 最后一個錯誤聲明指出我在第 11 行缺少一個分號,但我不知道在哪里。 對於這些新手問題,我深表歉意,希望您能幫助謝謝。
我試過只是做“半徑*半徑”來獲得半徑^ 2,而不是使用pow(半徑,2,0); 它有效,但我仍然收到“第 11 行預期;”錯誤。 同樣對於我的任務,我需要使用 pow function 所以我必須讓它工作。
#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’
我已經在我的代碼上留下了評論,所以應該很清楚 output 是什么預期的。 該程序基本上是接受用戶輸入的圓的直徑並從中計算面積和周長。
首先,第 11 行的錯誤是寫的 word area 沒有表明它是一個注釋。 其次pow
在<math.h>
中定義。 包括這很可能會解決問題,否則請參閱此SO 帖子。
最后,主要問題在於 return 語句。 在 C 中,您必須創建一個結構來返回多個值,或者使用指針 arguments。
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
似乎更適合這個參數。
pow()
在<math.h>
中聲明。 您是否在標題中包含此內容?
(此外,您對第 9-10 行的評論正在運行到第二行 escaping 被注釋掉的部分,並導致編譯器錯誤。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.