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

如何让C++圆与球体计算程序仅接收一次用户输入?

解决方案

要实现仅输入一次半径完成所有计算,核心是将半径的输入逻辑集中到main函数,再把半径作为参数传递给各个计算函数,同时修正原代码里的几个细节错误:

关键修改点

  • 重构三个计算函数,让它们接收double类型的半径参数,移除函数内部的半径输入逻辑
  • 在main函数中统一获取用户输入的半径值
  • 修正球体体积计算中的整数除法问题:(4/3)是整数运算结果为1,需改为4.0/3.0确保浮点运算
  • 修正球体表面积函数的输出文本错误(原代码误写为体积)
  • 调整输出格式匹配你期望的样式

修改后的完整代码

#include <iostream>
#include <cmath>
#define Pi 3.1415
using namespace std;

// 接收半径参数,计算并输出圆面积
void area_of_circle(double radius) {
  double areaCircle = Pi * radius * radius;
  cout << "Area of a circle is " << ceil(areaCircle * 100.0) / 100.0 << " square inches" << endl;
}

// 接收半径参数,计算并输出球体体积
void volume_of_sphere(double radius) {
  // 用4.0/3.0避免整数除法
  double volumeSphere = (4.0/3.0) * Pi * radius * radius * radius;
  cout << "Volume of a sphere is " << ceil(volumeSphere * 100.0) / 100.0 << " cubic inches" << endl;
}

// 接收半径参数,计算并输出球体表面积
void surface_area_of_sphere(double radius) {
  double surfaceAreaSphere = 4 * Pi * radius * radius;
  // 修正输出文本
  cout << "Surface area of a sphere is " << ceil(surfaceAreaSphere * 100.0) / 100.0 << " square inches" << endl;
}

int main() {
  double radius;
  // 统一输入半径
  cout << "Enter a radius in inches: ";
  cin >> radius;

  // 传入半径参数调用各计算函数
  area_of_circle(radius);
  volume_of_sphere(radius);
  surface_area_of_sphere(radius);
  
  return 0;
}

为什么你之前的input函数没用?

你写的input函数仅输出了提示信息,但没有读取用户输入并将半径值传递给后续的计算函数,同时main里的radius变量未被赋值,也没有传递给三个计算函数,所以无法实现预期效果。

内容的提问来源于stack exchange,提问作者Audrey W.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:43:09