onepic 2019-10-03 09:50 采纳率: 87.5%
浏览 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 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块
  • ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行