Em sử dụng code này để làm bài và chỉ đc 90/100đ, có một test em bị sai kết quả của diện tích, em đã thử kiểm tra lại code nhưng em vẫn chưa thấy được phần sai. Mong thầy và các bạn giúp em ạ. Em cảm ơn. Đây là code của em:
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
if (a + b > c && a + c > b && c + b > a) {
double S;
long long P, p;
P = a + b + c;
p = (a + b + c) / 2;
S = sqrt(p * (p - a) * (p - b) * (p - c));
cout << P << ' ' << setprecision(2) << fixed << S;
} else
cout << "NO";
}
Tổng cộng 1 trả lời
Bạn bị sai ở dòng tính p = (a + b + c) / 2 nhé, phép tính bên phải là tính toán với số nguyên, những test có a + b + c lẻ sẽ làm cho kết quả sai.