C++变量总是为零

use*_*781 0 c++ for-loop zero

我正在使用一些if语句运行一个简单的for循环.在这个for循环中,3个变量将被赋予一个值,具体取决于for循环中的索引值.看起来相当简单,当我运行代码时,值总是为零,我不知道为什么会发生这种情况.我的for循环在下面提供.我很感激任何建议.

double A [N+1];
double r;
double s;
double v;
for(int i = 2; i < N+1; i++)
{
    if(i == 2)
    {
         r = 1/2/i/(i-1);
         s = -1/2/(i*i - 1);
         v = 1/4/i/(i+1);
    }
    else if(i <= N-2 && i > 2)
    {
        r = 1/4/i/(i-1);
        s = -1/2/(i*i - 1);
        v = 1/4/i/(i+1);
    }
    else if(i <= N-4 && i > N-2)
    {
        r = 1/4/i/(i-1);
        s = 0;
        v = 1/4/i/(i+1);
    }
    else
    {
        r = 1/4/i/(i-1);
        s = 0;
        v = 0;
    }

    A[i] = r*F[i-2] + s*F[i] + v*F[i+2];
    cout << r << s << v << endl;

}
Run Code Online (Sandbox Code Playgroud)

Kon*_*lph 15

它正在发生,因为你正在使用整数除法.一个例子:

r = 1/2/i/(i-1);
Run Code Online (Sandbox Code Playgroud)

这与:

r = ((1 / 2) / i) / (i - 1);
Run Code Online (Sandbox Code Playgroud)

这与以下相同:

r = (0 / i) / (i - 1);
Run Code Online (Sandbox Code Playgroud)

......这与:

r = 0 / (i - 1);
Run Code Online (Sandbox Code Playgroud)

......是的0.

因为1 / 20整数运算.要解决此问题,请使用浮点值.