#include <stdio.h>
#include <math.h>
const double PI = 3.14;
main() // 錯誤:缺少返回類型
{
double r,h,C1,Sa,Sb,Va,Vb;
scanf("%lf%lf",&r,&h);
C1=2*PI*r;
Sa=PI*r*r;
Sb=4*PI*r*r;
Va=4.0/3*PI*r*r*r;
Vb=PI*r*r*h;
printf("C1=%.2lf\nSa=%.2lf\nSb=%.2lf\nVa=%.2lf\nVb=%.2lf\n",C1,Sa,Sb,Va,Vb);
return 0;
}
C99 標準規定 main 函數必須顯式聲明返回類型 int,舊式隱式 int 已被廢棄。編譯器報錯:「main 前面少了東西」。
int main(void) // 或 int main()
{
// ... 業務邏輯
return 0;
}
#include <math.h> 需在編譯時鏈接數學庫(GCC 加 -lm)。Va=4.0/3*PI*r*r*r 中 4.0/3 為浮點除法,正確;若寫 4/3 會整數除法得 1,導致結果偏差。M_PI(math.h 定義)替代手寫 3.14,精度更高。