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;
}

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

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

改为:

 double c;
 c = (static_cast<double>(5) / 9 * ( f - 32 ));

5/9为小数,定义的是整数int,那么0.555....小数点后面都会被舍弃,最后结果得出的是0,0乘以任何数都会得0