沉默的无言者 2014-10-30 11:53 采纳率: 50%
浏览 1834
已采纳

初学者关于C++的一个疑问

今天在学校做上机课,编写了一个输入圆半径然后计算圆的周长面积以及对应球体体积的小程序。本来只是小试牛刀,没想到出了一个百思不得其解的问题,代码如下:

#include <stdio.h>
#include <iomanip>
#include <iostream>

using namespace std;

int main()
{
    const double pi = 3.14;
    double r;
    double c;
    double s;
    double v;
    cout << "Please input a number to be the radius: ";
    cin >> r;
    c = 2 * pi * r;
    s = pi * r * r;
    v = 4 / 3 * pi * r * r * r; //注意此行
    cout << c << endl;
    cout << s << endl;
    cout << v << endl;
    system("pause");
    return 0;
}

此时输出的v值似乎自动忽略了前面的 4/3……如果将4改成4.0或者3改成3.0则输出正常!百思不得其解,求大神解答~~

  • 写回答

3条回答 默认 最新

  • Solyn, 2014-10-30 12:10
    关注

    因为没有给4和3数据类型,默认的4,3都是整形,所以相除的话,结果是1,1*任何数都是它本身,所以没用
    加上4.0,或者3.0以后表示把它强制转换为浮点型,所以结果是小数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于博途V17进行仿真时无法建立连接问题
  • ¥15 请问下这个红框里面是什么文档或者记事本编辑器
  • ¥15 机器学习教材中的例题询问
  • ¥15 求.net core 几款免费的pdf编辑器
  • ¥15 为什么安装HCL 和virtualbox之后没有找到VirtualBoxHost-OnlyNetWork?
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)