onepic 2019-10-03 09:50 采纳率: 85.7%
浏览 225
已采纳

重载函数如何区分输入的梯形三个变量和三角形的三边。

double area(double a,double b,double h)
{
return (a+b)*h/2;
}
double area(double a,double b,double c,int)
{
return (1/4)*sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a));
}

这个输入三角形三边只会返回梯形的面积公式答案,无法到三角形公式,
求解答。
原代码:
#include"iostream"
#include"math.h"
using namespace std;

double area (double r);
double area(double a,double b);
double area(double a,double b,double h);
double area(double a,double b,double c,int);

int main()
{
double a=0,b=0,h=0,c=0,r=0,s1,s2,s3,s4;
int x;
cout<<"请输入需要计算的图形代码:圆的面积:1,矩形:2,梯形:3,三角形:4" < cin>>x;
if(x==1){
cout<<"请输入圆的半径r:";
cin>>r;
s1=area(r);
cout<<"圆的面积s1="< }
if(x==2){
cout cin>>a>>b;
s2=area(a,b);
cout<<"矩形的面积s2="< }
if(x==3){
cout cin>>a>>b>>h;
s3=area(a,b,h);
cout<<"梯形的面积s3="< }
if(x==4){
cout cin>>a>>b>>c;
s4=area(a,b,c,1);
cout<<"三角形的面积s4="<<s4<<endl;
}
return 0;
}
double area (double r)
{
return 3.14*r*r;
}
double area(double a,double b)
{
return a*b;
}
double area(double a,double b,double h)
{
return (a+b)*h/2;
}
double area(double a,double b,double c,int)
{
return (1/4)*sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a));
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-10-03 09:59
    关注

    调用下面的时候,用
    area(a,b,c,100);
    随便传一个整数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug