IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> Задача на циклические алгоритмы, язык СИ
Sensitive
сообщение 3.10.2007 19:32
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Здравствуйте!
Только начинаю изучать СИ...и сразу же "прокололась" на простой задаче. ПОмогите пожалуйста...
Задача такая:
Найти сумму приведенного выражения.
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...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 3.10.2007 19:40
Сообщение #2


Гость






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

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

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


Можно еще десятком способов...
 К началу страницы 
+ Ответить 
Sensitive
сообщение 3.10.2007 19:46
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


volvo, огромное спасибо. Выручил! Думаю, теперь запомню про типы операндов и результатаsmile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 29.07.2025 7:43
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"