You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:35:18