Khi em nhập 3 cạnh a, b, c vào là 2, 3, 4 thì hàm kiemtra báo là tam giác thường là đúng nhưng khi tính diện tích nó lại tính diện tích tam giác đều ạ.Em không biết vì sao ai có thể giúp em với ạ.
#include <iostream>
#include <math.h>
using namespace std;
class triangle {
private:
float a, b, c;
public:
void Input() {
cout << "Nhap 3 canh cua tam giac" << endl;
cout << "Canh a :";
cin >> a;
cout << "Canh b :";
cin >> b;
cout << "Canh c :";
cin >> c;
}
void KiemTra() {
int flag;
if ((a == b) && (b == c) && (c == a)) {
flag = 0;
cout << "Day la tam giac deu" << endl;
}
else if ((a + b > c) || (a + c > b) || (b + c > a)) {
flag = 1;
cout << "Day la tam giac thuong" << endl;
}
}
float TamGiacDeu() {
float S;
S = pow(a, 2) * sqrt(3)/4;
return S;
}
float TamGiacThuong() {
float S, P;
P = (a + b + c) / 2;
S = sqrt(P * (P - a) * (P - b) * (P - c));
return S;
}
};
int main() {
int flag = 0;
triangle T;
T.Input();
T.KiemTra();
if (flag == 0) {
cout <<"Dien tich tam giac deu :"<< T.TamGiacDeu();
}
if (flag == 1) {
cout << "Dien tich tam giac thuong :" << T.TamGiacThuong();
}
return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?