c++计算三角形面积
解决时间 2021-08-22 15:59
- 提问者网友:活着好累
- 2021-08-21 22:02
#include"iostream"
#include"cmath"
using namespace std;
int max(int x,int y,int z)
{
int a,b,c,d;
if(a>b)
{
if(a>c)
d=a;
else
d=c;
}
else
{
if(c>b)
d=c;
else
d=b;
}
return d;
}
int main()
{
float a,b,c,d,l,s;
cin>>a>>b>>c;
d=max(a,b,c);
l=(a+b+c)/2;
if(l>d)
{
s=sqrt(l*(l-a)*(l-b)*(l-c));
cout<<"s="<<s<<endl;
}
else
{
cout<<"error"<<endl;
}
cout<<"d="<<d<<endl;
return 0;
}
这个有什么问题
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-08-21 23:39
很明显的错误,,,max函数没有对形参进行处理
可以这样改:
#include"iostream"
#include"cmath"
using namespace std;
int max(int x,int y,int z) //形参是x,y,z,但是你没有处理缺改而处理a,b,c
{
int a,b,c,d;a=x; //这是改动最少的方法 但很多余,max函数里a,b,c的定义本来b=y; //就很多余的,直接用x,y,z代替a,b,c就行c=z;
if(a>b)
{
if(a>c)
d=a;
else
d=c;
}
else
{
if(c>b)
d=c;
else
d=b;
}
return d;
}
int main()
{
float a,b,c,d,l,s;
cin>>a>>b>>c;
d=max(a,b,c);
l=(a+b+c)/2;
if(l>d)
{
s=sqrt(l*(l-a)*(l-b)*(l-c));
cout<<"s="<<s<<endl;
}
else
{
cout<<"error"<<endl;
}
cout<<"d="<<d<<endl;
return 0;
}
全部回答
- 1楼网友:零点过十分
- 2021-08-22 01:53
int max(int a,int b,int c)
{
int d;
- 2楼网友:不甚了了
- 2021-08-22 00:19
我记得max是里面本身就带有的函数还是值,你只要把max函数名字改下就可以了
我要举报
大家都在看
推荐资讯