Vấn đề
Tính diện tích tam giác, vuông, tròn, chữ nhật, hình bình hành bằng switch case.
Giải pháp
Theo số case, tính diện tích:
- Tam giác: Nhập a,b,c. s=(a+b+c)/2; area=sqrt(s(s-a)(s-b)(s-c))
- Vuông: Nhập cạnh. area=cạnh*cạnh
- Tròn: Nhập bán kính. area=3.14159*r*r
- Chữ nhật: Nhập dài,rộng. area=dài*rộng
- Bình hành: Nhập đáy,cao. area=đáy*cao
Ví dụ
Chương trình C tính diện tích switch case:
#include <stdio.h>
#include <math.h>
main(){
int choice;
printf("Chon:\n1 Tam giac\n2 Vuong\n3 Tron\n4 Chu nhat\n5 Binh hanh\n");
scanf("%d", &choice);
switch(choice){
case 1: {
int a,b,c; float s,area;
printf("Nhap 3 canh:\n"); scanf("%d%d%d",&a,&b,&c);
s=(float)(a+b+c)/2;
area=(float)sqrt(s*(s-a)*(s-b)*(s-c));
printf("Dien tich tam giac %f\n",area); break;
}
case 2: {
float side,area;
printf("Nhap canh:\n"); scanf("%f",&side);
area=side*side;
printf("Dien tich vuong %f\n",area); break;
}
case 3: {
float r,area;
printf("Nhap ban kinh:\n"); scanf("%f",&r);
area=3.14159*r*r;
printf("Dien tich tron %f\n",area); break;
}
case 4: {
float l,b,area;
printf("Nhap dai rong:\n"); scanf("%f%f",&l,&b);
area=l*b;
printf("Dien tich chu nhat %f\n",area); break;
}
case 5: {
float base,h,area;
printf("Nhap day cao:\n"); scanf("%f%f",&base,&h);
area=base*h;
printf("Dien tich binh hanh %f\n",area); break;
}
default: printf("Lua chon khong hop le\n"); break;
}
}
Đầu ra
Kết quả chạy chương trình:
Chon: 1 Tam giac ... 5 Binh hanh 5 Nhap day cao: 2 4 Dien tich binh hanh 8.000000 --- Chon 3 Nhap ban kinh: 4.5 Dien tich tron 63.617199