C++函数重载?圈子区域

Lai*_*eme 1 c++ math

我正在尝试使用我的程序获得圆形区域.但是区域不是小数.

#include<iostream>

using namespace std;


float AreaOfCircle(float r);
int AreaOfCircle(int r);

int main()
{int rad;
    cout<<"Enter the Radius of Crircle: ";
    cin>>rad;
    cout<<"The Are of the Cirlcle: "<<AreaOfCircle(rad);

}
float AreaOfCircle(float r)
{
    int area=0;
    area=2*3.1456*r*r;
    return area;
}

int AreaOfCircle(int r)
{
    int area=0;
    area=2*3.1456*r*r;
    return area;
}
Run Code Online (Sandbox Code Playgroud)

但我需要回答一些小数点.

Luc*_*ore 7

你没有调用float该方法的版本.

将变量声明为 float

float rad;
Run Code Online (Sandbox Code Playgroud)

或者float在调用方法之前将其强制转换为.

AreaOfCircle((float)rad);
Run Code Online (Sandbox Code Playgroud)

您还需要使用float而不是int重载方法内部:

float AreaOfCircle(float r)
{
    float area=0;   // <--- float here
    area=2*3.1456*r*r;
    return area;
}
Run Code Online (Sandbox Code Playgroud)

也:

area = pi * r * r
length = 2 * pi * r
pi ~= 3.1415
Run Code Online (Sandbox Code Playgroud)