发现地理和危害意味着超载

时间:2018-10-21 14:41:18

标签: c++

我正在为一个班级的一个项目工作,但遇到了一些麻烦,这给了我2个错误,我不明白它们是什么意思... 它给出了错误:c4716“ medie”必须返回一个值。

代码如下:

#include <iostream>
#include <stdlib.h>
#include<math.h>
using namespace std;

float medie(float a, float b, float c)
{
    float MG,MA;
    MG= sqrt(a*b*c);
    cout<< "MG="<< MG<<endl;
    MA=(2*a*b*c)/(a+b+c);
    cout<< "MA="<< MA<<endl;

}

float medie(float a,float b,float c,float d)
{
    float MG,MA;
    MG= sqrt(a*b*c*d);
    cout<< "MG="<< MG<<endl;
    MA=(2*a*b*c*d)/(a+b+c+d);
    cout<< "MA="<< MA<<endl;
}

int main()
{
    float a,b,c,d;
    cout<<"a="<<endl;
    cin>>a;
    cout<<"b="<<endl;
    cin>>b;
    cout<<"c="<<endl;
    cin>>c;
    cout<<"d="<<endl;
    cin>>d;

    medie(a,b,c);

    medie(a,b,c,d);
}

1 个答案:

答案 0 :(得分:1)

您的medie函数已声明返回一个float值,但其中没有任何return语句。如果您声明它们返回void,则错误应该消失。

#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;

void medie(float a, float b, float c)
{
    float MG,MA;
    MG = sqrt(a*b*c);
    cout<< "MG="<< MG<<endl;
    MA = (2*a*b*c)/(a+b+c);
    cout<< "MA="<< MA<<endl;

}

void medie(float a,float b,float c,float d)
{
    float MG,MA;
    MG = sqrt(a*b*c*d);
    cout<< "MG="<< MG<<endl;
    MA = (2*a*b*c*d)/(a+b+c+d);
    cout<< "MA="<< MA<<endl;
}

int main()
{
    float a,b,c,d;
    cout<<"a="<<endl;
    cin>>a;
    cout<<"b="<<endl;
    cin>>b;
    cout<<"c="<<endl;
    cin>>c;
    cout<<"d="<<endl;
    cin>>d;

    medie(a,b,c);

    medie(a,b,c,d);
}