Форум программистов, компьютерный форум CyberForum.ru

не вижу ошибки - C++

Восстановить пароль Регистрация
 
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
24.10.2013, 20:20     не вижу ошибки #1
у меня при любом в воде числа из заданного пользователем диапазона выводит угадали.
Суть игры: пользователю предлагается вводить число из
некоторого диапазона до тех пор, пока он его не угадает. Если пользователь вводит чис-
ло, большее чем загаданное, то программа выводит сообщение «Перелет». Если пользо-
ватель вводит число, меньшее чем загаданное, то программа выводит сообщение «Недо-
лет». Программа завершает свою работу, когда пользователь вводит загаданное число.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
int irand (int a, int b);
int main()
{
srand((unsigned)time(0));
int x=rand(),y=0;
irand(y,x);
return 0;
}
 
int irand (int a, int b)
{
int x,y;
cin>>a>>b;
x=rand();
do
cin >>y;
while (y<a || y>b);
 
 
if (y>x) cout << "perelet" <<endl;
else
if (y<a) cout << "nedolet" <<endl;
else cout << "ygadali" <<endl;
do
cin>>y;
while(y!=x);
 
 
 
return y;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2013, 20:20     не вижу ошибки
Посмотрите здесь:

Не вижу ошибку C++
C++ ошибки
Линейный алгоритм, а ошибку не вижу C++
Помогите найти ошибку в коде, я его уже наизусть знаю...но ошибки не вижу C++
Не вижу ошибку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
24.10.2013, 20:33     не вижу ошибки #2
C++
1
2
3
4
if (y>x) cout << "perelet" <<endl;
else
if (y<a) cout << "nedolet" <<endl;
else cout << "ygadali" <<endl;
Попробуйте так.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (y>x)
{
 cout << "perelet" <<endl;
}
else
{
if (y<x)
{
 cout << "nedolet" <<endl;
}
else
{ 
cout << "ygadali" <<endl;
}
}
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
24.10.2013, 20:42  [ТС]     не вижу ошибки #3
Angeline, тогда ещё+ недолет выводит
вот я попробовала так
работает, но как диапазон записать не знаю

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int irand(int x);
 
int main()
{
    int n;
    int x;
    int count = 0;
 
    srand(time(0));
    n = rand();
    irand(x);
 
    return 0;
}
 
int irand(int x)
{
int n;
 
do
    {
        cin >> x;
        if (x>n) cout << "perelet" <<endl;
        if (x<n) cout << "nedolet" <<endl;
        if (x == n) cout << "ugadali!";
    } while (x!=n);
 
    return x;
}
SergeY26RuS
 Аватар для SergeY26RuS
1 / 1 / 0
Регистрация: 10.10.2013
Сообщений: 10
24.10.2013, 20:50     не вижу ошибки #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
int irand (int a, int b);
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int irand(int x);
 
int main()
{
    int n;
    int x;
    int count = 0;
 
    srand(time(0));
    n = rand() % 100 + 1; // тут нужно задавать диапозон в этом случии числа будут находится от 1 до 100
    irand(x);
 
    return 0;
}
 
int irand(int x)
{
int n;
 
do
    {
        cin >> x;
        if (x>n) cout << "perelet" <<endl;
        if (x<n) cout << "nedolet" <<endl;
        if (x == n) cout << "ugadali!";
    } while (x!=n);
 
    return x;
}
Отпишись, то или не то
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
24.10.2013, 20:54  [ТС]     не вижу ошибки #5
SergeY26RuS, SergeY26RuS,
при введении 110 программа выводи перелет, но она ведь не должна ничего выводить пока я не введу число из заданного диапазона
ну хотя, эта программа верна, но училка такая требовательная
SergeY26RuS
 Аватар для SergeY26RuS
1 / 1 / 0
Регистрация: 10.10.2013
Сообщений: 10
24.10.2013, 20:59     не вижу ошибки #6
Troo, Ты же просил, подсказать как установить диапозон, а другое это уже твои ошибки. Могу скинуть такую ж программу, делал раньше, моя незначильно отличается
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
24.10.2013, 21:02  [ТС]     не вижу ошибки #7
SergeY26RuS, скинь, если не сложно
SergeY26RuS
 Аватар для SergeY26RuS
1 / 1 / 0
Регистрация: 10.10.2013
Сообщений: 10
24.10.2013, 21:04     не вижу ошибки #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
 
int main()
{
setlocale(LC_ALL, "Russian");
  srand(time(0));
  bool done;
  do
  {
    int i = rand() % 100;
    while (true)
    {
      cout << "Я загадал число, какое? ";
      int j;
      cin >> j;
      if (i > j)
        cout << "Мое число больше." << endl;
      else
      {
        if (i < j)
          cout << "Мое число меньше." << endl;
        else
        {
          cout << "Ты угадал." << endl;
          break;
        }
      }
    }
    cout << "Продолжить (y/n)? ";
    char c;
    cin >> c;
    done = (c != 'y');
  } while (!done);
}
Вот вполне рабочий код, сам щас проверил

Добавлено через 1 минуту
Если выходиш из предела то есть из 100, до программа пишет, что число меньше. Я так и не понял что ты имел ввиду "переплет"
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
24.10.2013, 21:05  [ТС]     не вижу ошибки #9
SergeY26RuS, спасибо, да рабочий)
сейчас попробую свой переделать, спасибо)
SergeY26RuS
 Аватар для SergeY26RuS
1 / 1 / 0
Регистрация: 10.10.2013
Сообщений: 10
24.10.2013, 21:05     не вижу ошибки #10
Нз )
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
24.10.2013, 21:07  [ТС]     не вижу ошибки #11
SergeY26RuS,
когда выходишь из предела программа должна выводи что-то на подобии:"Введите число из заданного диапазона"
SergeY26RuS
 Аватар для SergeY26RuS
1 / 1 / 0
Регистрация: 10.10.2013
Сообщений: 10
24.10.2013, 21:11     не вижу ошибки #12
Troo, Щас подправлю

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
 
int main()
{
setlocale(LC_ALL, "Russian");
  srand(time(0));
  bool done;
  do
  {
    int i = rand() % 100;
    while (true)
    {
      cout << "Я загадал число, какое? ";
      int j;
      cin >> j;
      if(j > 100 || j < 0)
          cout << "Число выходит из диапозона (0 - 100)\n"; // Ну тут можешь свое написать
      else if (i > j)
        cout << "Мое число больше." << endl;
      else
      {
        if (i < j)
          cout << "Мое число меньше." << endl;
        else
        {
          cout << "Ты угадал." << endl;
          break;
        }
      }
    }
    cout << "Продолжить (y/n)? ";
    char c;
    cin >> c;
    done = (c != 'y');
  } while (!done);
}
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
24.10.2013, 21:12  [ТС]     не вижу ошибки #13
SergeY26RuS, спасибо)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2013, 21:16     не вижу ошибки
Еще ссылки по теме:

Игра Maze labirinth - не вижу начала игры C++
C++ То ли getchar мозги парит, то ли я что-то не вижу
C++ Не вижу сообщения из цикла фор

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SergeY26RuS
 Аватар для SergeY26RuS
1 / 1 / 0
Регистрация: 10.10.2013
Сообщений: 10
24.10.2013, 21:16     не вижу ошибки #14
Если, что нужно будет, пиши в личку помогу, чем смогу)
Yandex
Объявления
24.10.2013, 21:16     не вижу ошибки
Ответ Создать тему
Опции темы

Текущее время: 22:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru