C++圆面积计算器程序为何始终返回1?求技术解答
问题解决
你的代码核心问题在于没有正确调用函数:
在cout语句里你写的是areaofcircle,这是函数的地址(指针),C++会把非空指针转换成布尔值true,输出时就显示为1。
正确的写法是调用函数并传入计算需要的半径参数:
cout << "The area of your circle equals " << areaofcircle(Radius);
修改后的完整代码:
#define _USE_MATH_DEFINES // 有些编译器需要这个宏才能启用M_PI #include<iostream> #include<math.h> using namespace std; double areaofcircle(double Radius) { return M_PI * pow(Radius, 2); // 或者用 Radius * Radius 替代pow,效率更高:return M_PI * Radius * Radius; } int main () { double Radius; cout << "Enter the radius of your circle \n"; cin >> Radius; cout << "The area of your circle equals " << areaofcircle(Radius); return 0; }
额外提示:
- 部分编译器(比如MSVC)需要在包含头文件前定义
_USE_MATH_DEFINES才能使用M_PI,否则会出现未定义的错误。 - 计算平方用
Radius * Radius比调用pow函数更高效,也避免了浮点数精度的潜在问题。
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

