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

> Внимание!

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

> цикл с накоплением с++, помогите исправить ошибку
Formula
сообщение 29.04.2010 0:56
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Женский

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


цикл от 10 до N. вычислить значение y=(k+3)/((k-5)*(k-7)).
n<10 результат одно и то же число =((



#include <stdio.h>
#include <cmath>
#include <iostream>

using namespace std;

int main()
{
int k,y,n;
cout<<"Vvedite N"<<endl;
cin>>n;
for(k=10;k<n;k--)
y=(k+3)/((k-5)*(k-7));
cout<<"y= "<<y<<endl;
cin.get();
cin.get();
}


Сообщение отредактировано: Formula - 29.04.2010 1:31
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 29.04.2010 11:08
Сообщение #2


Гость






У тебя в задании сказано:
Цитата
цикл от 10 до N. вычислить значение
. Теперь смотри, что делаешь ты: Вводишь N. Допустим, 15. Начинаешь цикл... Для каких k он отработает? Для k = 10, 11, 12, 13, 14... Всё. Точка... Где вычисление при k = 15? Ведь это как раз и есть то самое N, и его тоже надо считать...

Это первое. Второе: никогда больше не делай так, как ты сделала выше. Очень опасно применять ++ к вещественному числу. А получится у тебя после первого ++ не 11, а 10.999999999 - оно тебе надо? Цикл for - это цикл с заданным количеством повторений, а количество - это целое число...

    double y = 1.0;
for(int k = 10; k <= n; k++)
{
y = y * ((double)(k+3) / ((k-5)*(k-7)));
}

Ничего сложного, правда?
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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