Công thức toán học
Cầu (sphere) với bán kính r:
- Thể tích: V = (4/3) × π × r³
- Diện tích bề mặt: A = 4 × π × r²
Trong C: π ≈ 3.14159 hoặc M_PI từ <math.h>
Chương trình 1: Tính thể tích (bán kính cố định)
#include <stdio.h>
int main() {
float theTich;
int banKinh = 20;
// Lưu ý: 4.0/3.0 để chia thực, không phải chia nguyên
theTich = (4.0f / 3.0f) * 3.14159f * banKinh * banKinh * banKinh;
printf("Ban kinh: %d\n", banKinh);
printf("The tich cau: %.5f\n", theTich);
return 0;
}
Kết quả
Ban kinh: 20
The tich cau: 33510.32164
Chương trình 2: Nhập bán kính, tính cả thể tích và diện tích
#include <stdio.h>
#include <math.h>
int main() {
float r;
float dienTich, theTich;
printf("Nhap ban kinh cau: ");
scanf("%f", &r);
// Sử dụng M_PI từ math.h (cần compile với -lm)
dienTich = 4.0f * M_PI * r * r;
theTich = (4.0f / 3.0f) * M_PI * r * r * r;
printf("Dien tich be mat: %.3f\n", dienTich);
printf("The tich: %.3f\n", theTich);
return 0;
}
Kết quả
Nhap ban kinh cau: 4
Dien tich be mat: 201.062
The tich: 268.083
Lưu ý quan trọng khi compile
// GCC
gcc ten_file.c -o ten_file -lm
// -lm: link thư viện math (libm) cho M_PI, pow(), sqrt()...
Bảng giá trị tham chiếu (π = 3.14159)
| Bán kính (r) | Diện tích (4πr²) | Thể tích (4/3 πr³) |
|---|---|---|
| 1 | 12.57 | 4.19 |
| 2 | 50.27 | 33.51 |
| 5 | 314.16 | 523.60 |
| 10 | 1256.64 | 4188.79 |
| 20 | 5026.55 | 33510.32 |
Các lỗi thường gặp
- Chia nguyên:
4/3 = 1(sai) → Dùng4.0/3.0hoặc4.0f/3.0f - Thiếu -lm: Lỗi
undefined reference to M_PI - Kiểu dữ liệu: Dùng
floathoặcdouble, tránhintcho bán kính pow(r, 3)thay chor*r*r(chậm hơn, nhưng dễ đọc)
Mở rộng: Struct hình cầu
struct Cau {
float banKinh;
float dienTich;
float theTich;
};
void tinhCau(struct Cau *c) {
c->dienTich = 4 * M_PI * c->banKinh * c->banKinh;
c->theTich = (4.0/3.0) * M_PI * c->banKinh * c->banKinh * c->banKinh;
}
Bài toán hình học cơ bản này rèn luyện: ép kiểu, độ ưu tiên toán tử, thư viện math, và tư duy đối tượng (struct).