C ++,函数不返回double

时间:2015-11-12 13:26:20

标签: c++

我的代码不返回双值z,而只返回1,为什么?

#include <iostream>
#include <fstream>

using namespace std;
double road(int s, int v, int max )
{
    double t;
    t = (s/v);
    return t;
}
int main()
{
    int s[2]={0};
    int v[2]={0};
    int max;
    double z; // result of function
    ifstream fd;
    fd.open("u1.txt");
    fd >> max;
    for (int i = 0; i < 2; i++)
    {
        fd >> s[i] >> v[i];
        z = road( s[i], v[i], max );
        cout << z << " ";
    }

    fd.close();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

尝试更改您的方法,如

double road(int s, int v, int max )
{
    double t;
    t = (s/(double)v);
    return t;
}

int / int将产生一个整数。所以你需要将分子或分母转换为double。