В чем проблема? При любом числе в консоле выходит 0

введите сюда описание изображенияУнивер. Вложенные циклы

int main()
{
    int t, k, i;
    cout << "k = ";
    cin >> k;
    double p = 0, s;
    for(t=1;t<=k;t++)
        if (t != 3) {
            s = 1;
            for (i = 1; i <= t; i++)
                if (i != 7)
                    s *= (i + 2) / (i - 7);
            p *= sin(t) / (t - 3);
        }
    cout << "s = " << s << endl;
    return 0;
}

При вводе любого числа выводит 0 или -0


Ответы (1 шт):

Автор решения: Harry

Поймите, наш преподаватель сказал что мол правильно всё. Когда же всё иначе.

Если преподаватель сказал, что все верно - кто мы такие, чтоб спорить с авторитетом?

Только непонятно, какой ответ вы хотите услышать? Если вы его уже сформулировали...

Если бы студентом был я, я бы написал так, даже без оптимизации суммы:

double series(int k)
{
    double p = 1;
    for(int t = 1; t <= k; ++t)
        if (t == 3) continue; else
        {
            double s = 0;
            for(int i = 1; i <= t; ++i)
                if (i == 7) continue; else s += (i+2.)/(i-7.);
            p *= sin(t)/(t-3)*s;
        }
    return p;
}

int main(int argc, char * argv[])
{
    for(int k = 1; k < 10; ++k)
        cout << setw(2) << k << " "
             << setw(10) << series(k) << endl;
}

Но, понятно, это ответ не для вас - у вас же все по словам препода верно, а для кого-то другого, OK?

→ Ссылка