Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на циклические алгоритмы
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Sensitive
Здравствуйте!
Только начинаю изучать СИ...и сразу же "прокололась" на простой задаче. ПОмогите пожалуйста...
Задача такая:
Найти сумму приведенного выражения.
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();
}

но y поллучается всегда равным 0...
volvo
В С тип результата операции деления такой же, как и типы операндов... Поскольку ты делишь целое на целое, то в результате дробная часть отсекается и... остается ноль...

Как исправить? Любым способом привести или числитель или знаменатель к double... Можно так:
y=y+(double)n/(n*n+2*n+6);

можно - вот так:
y=y+n/(n*n+2*n+6.0); // <-- обрати внимание на 6.0: это - уже double


Можно еще десятком способов...
Sensitive
volvo, огромное спасибо. Выручил! Думаю, теперь запомню про типы операндов и результатаsmile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.