为例2-2添加数据检验部分。用户输入三个边长,检验其是否能构成一个三角形(检查是否任意两边和均大于第三边),如果构成三角形,计算面积并输出;如果不构成三角形,输出信息“Error Data!”。程序能连续接收两组数据,给出两组结果。
程序运行结果如下:
输入:
3 4 5
1 2 3
输出:
6
Error Data!
分析:这个题与上一题类似,也需要用海伦公式解决,但是本题多了一个判断和一个多组数据
判断的话用if结构就可以解决,不过要注意判断条件要加好()(因为if语句()中的内容是1(也就是布尔值true)才会进入之后的语句,加()就是为了把数据变成布尔形式)
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
int main()
{
for (int i=1;i<=2;i++)
{
double a,b,c,s,p;
cin>>a>>b>>c;
if (((a+b)>c)&((a+c)>b)&((b+c)>a))
{
p=a+b+c;
p=p/2;
s=(sqrt(p*(p-a)*(p-b)*(p-c)));
cout<<s<<endl;
}
else cout<<"Error Data!";
}
return 0;
}
两组数据不多,所以有人直接用两组变量解决,我觉得打两遍很烦……所以我就用了循环体来解决这个问题每次我都重定义可以直接清空数据,如果不清空也会在读入的时候覆盖掉,没什么问题。