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 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序