В чем проблема? При любом числе в консоле выходит 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?
