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

为何在变量定义时调用ConeVolume函数,输出结果却为0?

问题原因与解决方案

为什么结果是0?

你调用ConeVolume的时机完全搞反了。函数计算体积需要用到radius1和height2的有效数值,但你是先调用函数赋值给volumeCone,之后才让用户输入这两个变量的值。这时候调用函数时,radius1和height2还没被赋值——如果是局部变量,它们的初始值是未定义的垃圾值;如果是全局变量,默认初始化为0。你得到0的结果,大概率是这两个变量当时的值就是0,函数自然算出0。

能不能将变量值设为函数返回值?

当然可以,而且这才是正确的用法。你的ConeVolume函数本身就是用来返回体积计算结果的,正确的流程应该是:先获取用户输入的半径和高度,再调用函数把返回值赋值给volumeCone,或者直接输出函数的返回值。

举个正确的代码示例:

#include <iostream>
#include <cmath>

double ConeVolume(double radius, double height) {
    return M_PI * radius * radius * height / 3.0;
}

int main() {
    double radius1, height2;
    // 第一步:获取用户输入
    std::cout << "输入底面半径:";
    std::cin >> radius1;
    std::cout << "输入圆锥高度:";
    std::cin >> height2;
    // 第二步:调用函数计算并赋值
    double volumeCone = ConeVolume(radius1, height2);
    // 第三步:输出结果
    std::cout << "圆锥体积:" << volumeCone << std::endl;
    return 0;
}

这样调整顺序后,函数就能拿到用户输入的有效参数,计算出正确的体积值。

内容的提问来源于stack exchange,提问作者Matthew Parise

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 16:50:20