Editorial for C++ Bài 1.C2: Diện tích tam giác


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.

Submitting an official solution before solving the problem yourself is a bannable offence.

Lời giải chi tiết:

Đầu tiên, các bạn cần khai báo kiểu dữ liệu của ba cạnh \(a, b, c \) dựa vào khoảng giá trị đề bài đưa \((1 \leq a, b, c \leq 10^6)\).

Bước 2, các bạn dùng lệnh cin để nhập ba số vừa khai báo ở trên.

Bước 3, các bạn khởi tạo một biến (ví dụ tên biến là s), chú ý kiểu dữ liệu của biến vừa tạo dựa vào khoảng giá trị của ba cạnh tam giác \((1 \leq a, b, c \leq 10^6)\), biến này có tác dụng tính nửa chu vi của tam giác theo công thức Heron: \( s = \frac{a + b + c}{2}\)

Bước 4, các bạn khởi tạo một biến (ví dụ tên biến là area), chú ý kiểu dữ liệu của biến vừa tạo dựa vào khoảng giá trị của ba cạnh tam giác \((1 \leq a, b, c \leq 10^6)\), biến này có tác dụng tính diện tích của tam giác theo công thức Heron: \( area = \sqrt{s \cdot (s - a) \cdot (s - b) \cdot (s - c)}\). Lưu ý hàm sqrt trong C++ dùng để tính căn bậc 2.

Bước 5, in ra kết quả theo yêu cầu đề bài, sử dụng lệnh cout để in ra, chú ý câu lệnh fixed << setprecision(), trong dấu () là số chữ số lấy sau dấu phẩy.

#include <bits/stdc++.h>

using namespace std;

int main(){
    long double side1, side2, side3, area, s; 
    cin >> side1; 
    cin >> side2; 
    cin >> side3; 

    s = (side1 + side2 + side3) / 2; 
    area = sqrt(s * (s - side1) * (s - side2) * (s - side3));
    cout << fixed << setprecision(2);
    cout <<area << endl; 
    return 0;
}

Comments

There are no comments at the moment.