Đề bài là tính chu vi và diện tích tam giác, mình chỉ thay đổi điều kiện ở cấu trúc if, nhưng sao 1 kiểu chạy được 1 kiểu không, ai biết giúp mình với.
Kiểu này thì chạy lỗi, khi mình nhập sai cạnh nó vẫn tính trong if mà ko nhảy qua else:
#include <iostream>
#include<math.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
double a,b,c,cv,p,dt;
cout<<"Nhap canh thu nhat:";
cin>>a;
cout<<"Nhap canh thu hai:";
cin>>b;
cout<<"Nhap canh thu ba:";
cin>>c;
if(a+b>c||a+c>b||b+c>a||a>0||b>0||c>0)
{
cv=a+b+c;
p=(cv)/2;
dt=sqrt(p*(p-a)*(p-b)*(p-c));
cout<<"Chu vi cua tam giac la: "<<cv<<endl;
cout<<"Dien tich cua tam giac la: "<<dt<<endl;
}
else
{
cout<<"Ban nhap sai kich thuoc tam giac!";
}
return 0;
}
Còn đoạn này thì lại chạy đúng, mk chỉ để ngc điều kiện if thoi mà nó lại ko chạy đúng:
#include <iostream>
#include<math.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
double a,b,c,cv,p,dt;
cout<<"Nhap canh thu nhat:";
cin>>a;
cout<<"Nhap canh thu hai:";
cin>>b;
cout<<"Nhap canh thu ba:";
cin>>c;
if(a+b<c||a+c<b||b+c<a||a<=0||b<=0||c<=0)
{
cout<<"Ban nhap sai kich thuoc tam giac!";
}
else
{
cv=a+b+c;
p=(cv)/2;
dt=sqrt(p*(p-a)*(p-b)*(p-c));
cout<<"Chu vi cua tam giac la: "<<cv<<endl;
cout<<"Dien tich cua tam giac la: "<<dt<<endl;
}
}
thì đoạn 1 sai.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?