Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2010, 01:49   #1
DiLemma
Пользователь
 
Регистрация: 15.03.2010
Сообщений: 15
По умолчанию с++.циклы с накоплением.в чем ошибка?

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

Код:
#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();
}
DiLemma вне форума Ответить с цитированием
Старый 29.04.2010, 01:54   #2
Namolem
Oo
Форумчанин
 
Аватар для Namolem
 
Регистрация: 10.10.2009
Сообщений: 350
По умолчанию

во первых, y типа int, а это выражение меньше единицы - всегда будет округляться до 0

для n<10 нужно делать другой цикл, с понижением значения k
Namolem вне форума Ответить с цитированием
Старый 29.04.2010, 02:09   #3
DiLemma
Пользователь
 
Регистрация: 15.03.2010
Сообщений: 15
По умолчанию

всё точно так же=(( даже число то же,что и при k++
DiLemma вне форума Ответить с цитированием
Старый 29.04.2010, 02:13   #4
Namolem
Oo
Форумчанин
 
Аватар для Namolem
 
Регистрация: 10.10.2009
Сообщений: 350
По умолчанию

покажите новый код
Namolem вне форума Ответить с цитированием
Старый 29.04.2010, 02:21   #5
DiLemma
Пользователь
 
Регистрация: 15.03.2010
Сообщений: 15
По умолчанию

Код:
#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();
}
ну...
Цитата:
новый
это громко сказано...а почему кстати с уменьшением К?тут имеется ввиду, например, цикл от 10 до н=21

Последний раз редактировалось DiLemma; 29.04.2010 в 02:43.
DiLemma вне форума Ответить с цитированием
Старый 29.04.2010, 02:59   #6
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Эммм, а в чём смысл задания? Если Вам надо для каждого k от 10 до N вывести y, то вы определённо забыли скобки
Код:
for(k=10;k<n;k++) {
  y=(k+3)/((k-5)*(k-7));
  cout<<"y= "<<y<<endl;
}
а если только для n-1, то зачем вообще цикл?
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 29.04.2010, 03:11   #7
DiLemma
Пользователь
 
Регистрация: 15.03.2010
Сообщений: 15
По умолчанию

по-моему как-то так(там ещё перемножать резуль-т нужно):


Код:
#include <stdio.h>
#include <cmath>
#include <iostream>
 
using namespace std;
 
int main() 
{  
  double k,y;
  int n;
   cout<<"Vvedite N"<<endl;
   cin>>n;
    y=1;
     for(k=10;k<n;k++)
       y=(k+3)/((k-5)*(k-7));
       y=y*((k+3)/((k-5)*(k-7)));
     cout<<"y= "<<y<<endl;
    cin.get();
   cin.get();
}
DiLemma вне форума Ответить с цитированием
Старый 29.04.2010, 03:16   #8
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Ну и вот в этой строчке
Код:
y=(k+3)/((k-5)*(k-7));
Вы и теряете всё, что наперемножали раньше. Уберите её, оставьте
Код:
for(k=10;k<n;k++)
  y=y*((k+3)/((k-5)*(k-7)));
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 29.04.2010, 03:26   #9
DiLemma
Пользователь
 
Регистрация: 15.03.2010
Сообщений: 15
По умолчанию

ой, действительно. благодарю. вот только тогда получается, что при н=4, н=5, н=6 (дальше не проверяла) игрек=1, начиная с 11 - как и полагается, разные резуль-ты,так вот я про единичку.это так и должно быть?
DiLemma вне форума Ответить с цитированием
Старый 29.04.2010, 03:37   #10
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Для n < 10 Вам надо отдельный цикл сделать
Код:
for (k = 10; k > n; k--) ...
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в чем ошибка?.. Gsingle Общие вопросы Delphi 5 11.03.2011 20:11
В чем ошибка? hitman12 Паскаль, Turbo Pascal, PascalABC.NET 13 04.11.2009 12:38
циклы НЕМОГУ зделать помогите кто чем может JIyHa Помощь студентам 1 12.06.2009 15:16
В ЧЕМ ОШИБКА? salmanbaz Общие вопросы C/C++ 5 11.01.2009 13:21
В чем ошибка!!! juden Общие вопросы Delphi 12 10.03.2008 08:53