Chào mọi người, cho mình hỏi tại sao cái q có kiểu double mà nó lại làm tròn lên chứ không để số thập phân vậy ạ
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
void Nhap(int[]);
void Dientich(int[], double[], int);
bool Kiemtra(int[]);
void Xuat(double[], int);
int main()
{
int a[3], stt = 0, n;
double b[1000];
cin >> n;
for (int i = 0; i < n; i++){
Nhap(a);
if(Kiemtra(a)) Dientich(a, b, stt);
else b[stt] = 0;
stt++;
}
Xuat(b, n);
}
void Nhap(int a[])
{
for(int i = 0; i < 3; i++){
cin >> a[i];
}
}
void Dientich(int a[], double b[], int stt){
double q = (a[0]+a[1]+a[2])/2; // bộ thử 401 495 757 => q = 826.5 nhưng nó làm tròn 826
b[stt] = sqrt(q*(q-a[0])*(q-a[1])*(q-a[2]));
}
bool Kiemtra(int a[]){
if(a[0] >= a[1] + a[2] || a[1] >= a[0] + a[2] || a[2] >= a[0] + a[1]) return false;
return true;
}
void Xuat(double b[], int n){
for (int i = 0; i < n; i++){
if(b[i] != 0) cout << setprecision(5) << fixed << b[i] << endl;
else cout << setprecision(5) << fixed << "NOT TRIANGLE" << endl;
}
}