30/09/2018, 18:44
Mn ơi bài bảo nhập 3 cạnh rồi kiểm tra nếu là tam giác thì tính diện tích không thì thôi, bài này e sai chỗ nào ạ
#include<stdio.h>
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
void nhap(float &a,float &b,float &c)
{
cout<<"Nhap vao 3 canh: ";
cin>>a>>b>>c;
}
void kiemtra(float &a,float &b,float &c)
{
bool check;
if(a+b>c&&b+c>a&&a+c>b)
{
cout<<"3 canh vua nhap co the tao thanh tam giac.";
check=true;
}
else
{
cout<<"3 canh vua nhap khong the tao thanh tam giac.";
check=false;
}
}
float dientich(float &a,float &b,float &c)
{
float p,s;
p=(a+b+c)/2;
s=sqrt((p)*(p-a)*(p-b)*(p-c));
return s;
}
main()
{
float a,b,c,kq;
bool check;
kq=dientich(a,b,c);
nhap(a,b,c);
kiemtra(a,b,c);
if(check=true)
{
cout<<endl<<"ket qua: "<<kq;
}
else
cout<<endl<<"...";
}
Bài liên quan
Biến bool trong hàm
void kiemtra(float &a,float &b,float &c);
là một biến nội bộ trong scope của hàm thôi nên khi bạn gọi hàm trong hàm main, biến check trong hàm main của bạn sẽ ko thay đổi giá trị, bạn nên sửa lại làsao khi mà check=false nó k in ra " . . . " nhỉ
Sai nè bạn
bạn xem hộ mình là cái giá trị diện tích sao nó cứ là -0 thế
Bạn test với bộ test số bao nhiêu mà nó ra 0?
À mính biết rồi
Bạn chưa nhập mà gọi hàm tính kq rồi lấy gì nó tính
mình test với 3,4,5,
mình có truyền tham chiếu cho hàm nhập rồi mà
Chương trình chạy từ trên xuống, lúc nó gọi hàm tính kết quá thì a b c chưa có giá trị
Sau đó gọi hàm nhập thay đổi giá trị a,b,c nhưng còn ý nghĩa gì đâu? Biến kq có thay đổi theo đâu
Thử lại thế này:
Ahhh được rồi,mình cứ nghĩ là sau khi nhập thì nó cũng truyền giá trị vào cơ.tks bạn nha
Bạn nên học kỹ lại khái niệm tham chiếu nha. và quy tắc chương trình chạy tư trên xuống nữa
ok bạn giờ đang học hay làm gì rồi
Mình là sv năm 2, KHTN Tp HCM
vậy à,mình cũng năm 2 mà mình lơ mơ quá