![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
Sensitive |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 132 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Здравствуйте!
Только начинаю изучать СИ...и сразу же "прокололась" на простой задаче. ПОмогите пожалуйста... Задача такая: Найти сумму приведенного выражения. 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 |
![]()
Сообщение
#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
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 132 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
volvo, огромное спасибо. Выручил! Думаю, теперь запомню про типы операндов и результата
![]() |
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 7:43 |