永发信息网

c++计算三角形面积

答案:3  悬赏:0  手机版
解决时间 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函数名字改下就可以了

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯