Здравствуйте!
Только начинаю изучать СИ...и сразу же "прокололась" на простой задаче. ПОмогите пожалуйста...
Задача такая:
Найти сумму приведенного выражения.
y=∑(от n=1 до k) n/(n*n+2*n+7);
вот, что я сделала, зная как это реализовать на Паскале:
#include <conio.h>
#include <math.h>
#include <iostream.h>
#include <stdio.h>
void main()
{clrscr();
int n,k;
double y;
cout<<"Vvedite k:";
cin>>k;
y=0;
for (n=1;n<=k;++n) {y=y+n/(n*n+2*n+6);}
cout<<"y="<<y;
getch();
}
В С тип результата операции деления такой же, как и типы операндов... Поскольку ты делишь целое на целое, то в результате дробная часть отсекается и... остается ноль...
Как исправить? Любым способом привести или числитель или знаменатель к double... Можно так:
y=y+(double)n/(n*n+2*n+6);
y=y+n/(n*n+2*n+6.0); // <-- обрати внимание на 6.0: это - уже double
volvo, огромное спасибо. Выручил! Думаю, теперь запомню про типы операндов и результата