zlzjsl 2017-02-01 03:21 采纳率: 57.1%
浏览 989
已采纳

c++函数构造出现问题?

这是一个将华氏温度转化为摄氏温度的函数,为什么输出华氏温度后,输出的摄氏温度值一直为0呢?

#include<iostream>
#include<cstdlib>
using namespace std;

int ftoc(int f)
{
    int c;
    c = (5 / 9 * (f - 32));
    return c;
}
int main()
{
    int fahr;
    int celi;
    cout << "please enter the fahr: ";
    cin >> fahr;
    celi = ftoc(fahr);
    cout << "the celi is: " << celi << endl;
    system("pause");
    return 0;
}

  • 写回答

2条回答 默认 最新

  • Xefvan 2017-02-01 03:35
    关注

    c = (5 / 9 * (f - 32));

    因为在C++里运算是从左边到右边的,/和*的运算级别是一样的,所以先算5 / 9 在C++里其计算结果为0,所以 0 * (f - 32)都为0

    改为:

     double c;
     c = (static_cast<double>(5) / 9 * ( f - 32 ));
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?