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

Угадывание числа - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
epelsin
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 3
06.10.2010, 06:37     Угадывание числа #1
нужно написать программу в microsoft visial c++.ее конечный результат должен выглядеть вот так;
pick a number from 1 to 10
1
higher!
3
higher!
9
lower!
8
lower!
7
lower!
4
higher!
6
you finally got it!!!

it took you 7 guesses

give someone else a chance? ( 0 for yes, 1 for no)

пожалуйста очень срочно надо помогите пожалуйста!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2010, 06:37     Угадывание числа
Посмотрите здесь:

2 Задачи на С++(Вводить и суммировать числа пока пользователь не введет 2 одинаковых числа) C++
По последней цифре числа найти последнюю цифру квадрата этого числа C++
Распечатать все числа от 1 до N, у которых остатки от деления на число Z не превышают числа M. C++
C++ Дано два числа А и В (А<В). Вывести в порядке увеличения все целые числа
C++ Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NightmareZ
 Аватар для NightmareZ
1336 / 559 / 37
Регистрация: 31.03.2009
Сообщений: 1,907
06.10.2010, 06:57     Угадывание числа #2
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 <cstdlib>
#include <ctime>
#include <iostream>
 
int main()
{
    srand (time(NULL));
    int tryAgain = 0;
 
    do
    {
        std::cout << "pick a number from 1 to 10" << std::endl;
 
        int target = rand() % 10;
        int count = 0;
        int current;
 
        while (true)
        {
            count++;
 
            std::cin >> current;
            if (current == target)
                break;
            else if (current > target)
                std::cout << "lower!" << std::endl;
            else
                std::cout << "higher!" << std::endl;
        }
 
        std::cout << "you finally got it!!!" << std::endl << std::endl;
        std::cout << "it took you " << count << " guesses" << std::endl;
 
        std::cout << "give someone else a chance? ( 0 for yes, 1 for no)" << std::endl << std::endl;
        std::cin >> tryAgain;
    } while (tryAgain == 0);
    return 0;
}
epelsin
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 3
06.10.2010, 07:42  [ТС]     Угадывание числа #3
спасибо большое. но у меня есть вопрос мы не много этого не проходили все наши программы начинались не много по другому примерно вот такого типа
C++
1
2
3
4
5
6
7
8
9
#include<iostream>
using std::cin;
using std::cout;
 
int main()
{
 
 return 0;
}
это можно сделать как то по другому??
NightmareZ
 Аватар для NightmareZ
1336 / 559 / 37
Регистрация: 31.03.2009
Сообщений: 1,907
06.10.2010, 07:56     Угадывание числа #4
Не знаю, что тебе на это ответить.
epelsin
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 3
06.10.2010, 08:32  [ТС]     Угадывание числа #5
da i za eto spasibo bol6oe!!!
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2010, 15:33     Угадывание числа #6
C++
1
int target = rand() % 10 + 1;
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
06.10.2010, 16:30     Угадывание числа #7
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
41
42
43
44
#include <iostream>
#include <ctime> 
 
using std::cout;
using std::cin;
using std::endl;
 
 
 
int main()
{
     srand((unsigned)time(NULL));
     int target,count=1,number;
     bool flag=true;
     target = rand()%10;
     do
     {
         cout<<"Pick a number from 1 to 10 -> ";
         cin>>number;
         if(number>target)
         {
             cout<<"lower!!!"<<endl;
             count++;
         }
         if(number<target)
         {
             cout<<"higher!!!!"<<endl;
             count++;
         }
         if(number==target)
         {
             cout<<"you finally got it!!!"<<endl;
             cout<<"it took you "<<count<<" guesses"<<endl; 
             cout<<endl;
             cout<<"1 - yes"<<endl
                 <<"0 - no"<<endl;
             cin>>flag;
             count=1;
             system("cls");
         }
     } while(flag);
   system("pause");
   return 0;
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2010, 16:36     Угадывание числа #8
MILAN, в твоем варианте есть какие-то принципиальные различия/улучшения? По-моему - наоборот:
  1. загадываемое число генерируется только один раз;
  2. вне зависимости от того, какое условие верно (number>target, number<target, number==target), будут проверяться все три условия, что не есть хорошо. Используй if ... else if ... else.

Не по теме:

PS. За полтора года жизни на форуме можно было бы и научиться пользоваться тегами выделения кода...

MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
06.10.2010, 16:58     Угадывание числа #9
Nameless One,

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
41
42
43
44
45
#include <iostream>
#include <ctime> 
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
     srand((unsigned)time(NULL));
     int target,count=1,number;
     bool flag=true;
     target = rand()%9;
     do
     {
         cout<<"Pick a number from 1 to 10 -> ";
         cin>>number;
         if(number>target)
         {
             cout<<"lower!!!"<<endl;
             count++;
             continue;
         }
         if(number<target)
         {
             cout<<"higher!!!!"<<endl;
             count++;
             continue;
         }
         if(number==target)
         {
             cout<<"you finally got it!!!"<<endl;
             cout<<"it took you "<<count<<" guesses"<<endl; 
             cout<<endl;
             cout<<"1 - yes"<<endl
                 <<"0 - no"<<endl;
             cin>>flag;
             target = rand()%9;
             count=1;
             system("cls");
         }
     } while(flag);
   system("pause");
   return 0;
}
Спасибо, за замечания!!!
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2010, 17:02     Угадывание числа #10
MILAN, чтобы получить число от 1 до 10 включительно, нужно делать так:
C++
1
int target = rand() % 10 + 1;
И я бы убрал вычисления target из строк 14 и 39 и поместил бы его в начало тела цикла do ... while
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
06.10.2010, 17:07     Угадывание числа #11

Не по теме:

P.S Когда писал программу, мысли сделать лучшую, чем NightmareZ вообще не было!!! Хотелось представить свой вариант!!!



Добавлено через 3 минуты
Цитата Сообщение от Nameless One Посмотреть сообщение
И я бы убрал вычисления target из строк 14 и 39 и поместил бы его в начало тела цикла do ... while
Тогда значение target будет изменятся при каждом неверном ответе, и таким образом загадочное число будет изменятся при каждом шаге цикла!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2010, 17:09     Угадывание числа
Еще ссылки по теме:

C++ Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми
C++ Не работает программа на угадывание числа
Определить цифры целого числа (тип числа - целое без знака) C++

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2010, 17:09     Угадывание числа #12
MILAN, точно, смотрел невнимательно
Yandex
Объявления
06.10.2010, 17:09     Угадывание числа
Ответ Создать тему
Опции темы

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