Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > ошибка в написании цикла while


Автор: aleknek 2.12.2007, 11:54
Добрый день. Помогите пожалуйста разобраться. Пытаюсь реализовать простенькую программку , но из за минимального опыта не могу решить даже такого рода задачи. Программка такого типа: необходимо написать программку которая запрашивает у пользователя число от 0 до 1000, если это число четное, то оно делится на два, если нет, то умножается на 3 и прибавляется единица, результат выводится на экран, после этого полученное число проверяется опять. И так до тех пор пока число n не уменьшится до единицы. Алгоритм сводится к n=1 для любого целого n. Подскажите, что мне необходимо изменить или добавить, чтобы программа заработала. Думаю, что неправильно организовал цикл. Заранее благодарен.
Код

#include "stdafx.h"
#include "locale.h"
#include "conio.h"
#include "iostream"
using namespace std;  

int value(int n);

int _tmain(int argc, _TCHAR* argv[])
{
    //_____________________________________________
    setlocale(LC_CTYPE,".1251");
    setlocale(LC_MONETARY,".1251");
   //______________________________________________

   int n,answer;
   answer=0;
   cout << "Введите число, которое больше 0, и меньше 1000: ";
   cin >> n;
  while (answer!=1)
  {
   answer= value(n);
  }
  cout <<"результат"<< answer <<endl;

    getch();
    return 0;
}


    int value(int n)
    {
        int x;
        x=0;
        if (!(n&1))
         {
          x= n/2;
          return x;
         }
             else
             {
             x=((n*3)+1);
             return x;
             }
    }
    

Автор: JackYF 2.12.2007, 11:58
Цитата(aleknek @  2.12.2007,  11:54 Найти цитируемый пост)
answer= value(n);

Код

answer=value(answer)


Ты от одного и того же числа функцию брал smile

Автор: aleknek 2.12.2007, 12:16
Изменил, только все равно не работает???

Автор: JackYF 2.12.2007, 12:28
Ага. Ну добавь ещё перед циклом
Код

answer = n;

Автор: aleknek 2.12.2007, 12:47
Спасибо за помощь.

Автор: JackYF 2.12.2007, 13:36
aleknek, пометь тему решённой.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)