Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.83
danja702
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 19
#1

Программа, которая в диапазоне от 0 до 100 загадывает число, а пользователь должен его угадать - C++

08.10.2012, 17:46. Просмотров 5661. Ответов 22
Метки нет (Все метки)

Есть вопрос, как написать программу, в которая в дипозоне от 0 до 100 загадывает число, а мы, пользователи должны угадать число. При вводе число выводит следующие:
1. число больше вашего
2 число угадано с такой-то попытки
3. число меньше вашего

Максимальное число попыток – 10. Если число не было угадано с 10 попыток, программа выводит сообщение:
“Проигрыш! Правильный ответ такой-то”

И тоже самое, но где уже программа угадывает число с 10-ти попыток и должна угадать...

Не понимаю, как сделать это.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2012, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа, которая в диапазоне от 0 до 100 загадывает число, а пользователь должен его угадать (C++):

Пользователь загадывает число от 1 до 100, а программа должна его угадать - C++
Подскажите алгоритм выполнения такой задачи: Пользователь загадывает число от 1 до 100, а программа должна его угадать, задавая вопросы...

Написать игру “Угадай число!”. Компьютер загадывает число в определенном диапазоне, а пользователь пытается его угадать - C++
помогите решить Написать игру “Угадай число!”. Компьютер загадывает число в определенном диапазоне, а пользователь пытается его...

Программа задумывает число в диапазоне от 1 до 10 и предлагает пользователю угадать его за 5 попыток - C++
Написать программу, которая задумывает число в диапазоне от 1 до 10 и предлагает пользователю угадать его за 5 попыток. С++

Написать программу, которая "задумывает" число в диапазоне от 1 до 10 и предлагает пользователю угадать число - C++
Кто знает как на С++ можно решить данную задачу при помощи цикла do while? Написать программу, которая "задумывает" число в диапазоне от...

Программа "задумывает" число и предлагает пользователю его угадать - C++
Написать программу, которая "задумывает" число в диапазоне от 1 до 10 и предлагает пользователю угадать число за 5 по- пыток. Ниже...

Угадать заданное число (1-100) - C++
Требуется за 7 шагов угадать заданное пользователем число, путем задачи вопросов. Что получилось: #include "std_lib_facilities.h"; ...

22
silent_1991
09.10.2012, 16:38
  #2
 Комментарий модератора 
Цитата Сообщение от danja702 Посмотреть сообщение
Очень бы не хотелось заниматься оффтопом и флудом, от того хотелось бы в ПМ поговорить или другой "вне форумный" способ.
Это не "поговорить". Это задача, которую вам необходимо решить. А из этого следует, что вам стоит создать тему отдельно по конкретной задаче, а не пытаться её решить вдали от всех. Для этого и придуман форум. Ведь решение это задачи может быть интересно не только вам.
0
danja702
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 19
09.10.2012, 17:26  [ТС] #3
Цитата Сообщение от silent_1991 Посмотреть сообщение
Это не "поговорить". Это задача, которую вам необходимо решить. А из этого следует, что вам стоит создать тему отдельно по конкретной задаче, а не пытаться её решить вдали от всех. Для этого и придуман форум. Ведь решение это задачи может быть интересно не только вам.
Спасибо большое за правку.
По задачи так и не понялпа, что делать... максимум что умею делать в С++, это а+в складывать...
Читаю литературу, но ответа найти не могу.
0
silent_1991
Эксперт С++
4986 / 3043 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
09.10.2012, 17:48 #4
danja702, в литературе есть только общая информация, которая поможет вам решить любую задачу. А уж какие именно инструменты применить, вы и должны придумать. В этом и заключается работа программиста.
Давайте вместе подумаем. Что должна делать ваша программа? Она должна запросить у пользователя ввод числа, затем произвести какие-то проверки, и либо вывести подсказку, либо похвалить пользователя, что он умный, и выйти, либо поругать, что он тупой, и тоже выйти. При этом у пользователя есть несколько попыток, и в ответ на каждую попытку программа должна выполнить, по большому счёту, одни и те же действия (сравнение, вывод, выход или ожидание повтора попытки). Значит, вам понадобится цикл. ОК, один пункт, о котором стоит почитать, отметили - это циклы. Дальше. Мы видим, что в рамках одного потока действий (проверка и ответ программы на эту проверку) путь программы разветвляется - либо она выдаёт пользователю подсказку, либо говорит "Правильно" и выходит, либо говорит "слишком много попыток" и выходит. Значит, вам нужно познать условные операторы. Второй пункт - "условные операторы". Также программа производит ввод числа и вывод подсказок. Читаем про ввод/вывод.
По такому принципу работают все программисты, всего знать невозможно, почти с каждой новой задачей приходится разбираться в новой технологии, читать, читать и читать. Только у профессиональных программистов задачи куда крупнее, и читают они не про стандартные конструкции языков (правда, плохие программисты и про них иногда почитывают ).

Ну, это всё относится к первой задаче. Во второй задаче вам нужно почитать про бинарный поиск и подумать, как его можно применить к угадыванию. Скажу только, что любое число из диапазона 0~100 можно угадать за 7 попыток.
1
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 180
09.10.2012, 17:50 #5
Делал недавно для 0-1000. Этот код для 0-100. Проигрыш сейчас допилю. Это для первой задачи. Вторую я не знаю.

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
int main ()
{
    setlocale(LC_ALL,"Russian"); 
 
    srand ( time(NULL) );
    int num=rand() % 100;
 
    int j=0;
    int num2=0;
    while( num2 != num )
    {
        ++j;
        cout << "Введите число: ";
        cin >> num2;
        if( num < num2)
            cout << "Слишком большое число!" << endl;
        else if( num > num2)
            cout << "Слишком маленькое число!" << endl;
    }
    cout << endl << "Вы угадали число! c " << j << " попыток!" << endl;
 
 system ("pause");
 return 0;
}
2
silent_1991
09.10.2012, 17:54
  #6

Не по теме:

FliXis, ну вот, а я хотел, чтобы девушка подумала...

0
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 180
09.10.2012, 18:01 #7
Цитата Сообщение от silent_1991 Посмотреть сообщение

Не по теме:

FliXis, ну вот, а я хотел, чтобы девушка подумала...

Сорри, я сперва даже не прочитал тему целиком, кода не увидел и решил запостить. =)
Учитывая, что
максимум что умею делать в С++, это а+в складывать...
девушке надо даже не сколько подумать, сколько прочитать хотя бы четверть-треть любой книжки. =)
0
danja702
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 19
09.10.2012, 18:04  [ТС] #8
Цитата Сообщение от FliXis Посмотреть сообщение
Учитывая, что девушке надо даже не сколько подумать, сколько прочитать хотя бы четверть-треть любой книжки. =)
Ну уж сорри, когда маленький ребенок, не так уж много времени.
А книги читаю, предрочитая фентези, но какое это отношение к вопросу имеет?

Но тем не менее, ОГРОМНЕЙШЕЕ спасибо!
Буду теперь разбирать по кусочкам и стараться понять
0
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 180
09.10.2012, 19:35 #9
Цитата Сообщение от danja702 Посмотреть сообщение
А книги читаю, предрочитая фентези, но какое это отношение к вопросу имеет?
Любой книжки по с++ имелось ввиду =)

Добавлено через 1 час 29 минут
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
37
38
39
40
41
42
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
int main ()
{
    setlocale(LC_ALL,"Russian"); 
 
    srand ( time(NULL) );
    int num=rand() % 100;
 
    char ch=' ';
    int num2=0;
 
    do
    {
        for( int j=0 ; j<10 ; ++j )
        {
            cout << "Введите число: ";
            cin >> num2;
 
            if( num < num2)
                cout << "Слишком большое число!" << endl;
            if( num > num2)
                cout << "Слишком маленькое число!" << endl;
            if( j == 9)
                {cout << endl << "Вы не смогли отгадать число " << num << " c 10ти попыток!" << endl; break;}
            if( num2 == num )
                {cout << endl << "Вы угадали число! c " << j+1 << " попыток!" << endl; break;}
        }
 
    cout << "Еще раз? (y/n):_\b";
    cin >> ch; cout << endl;
    }
    while( ch != 'n' );
    
 system ("pause");
 return 0;
}
1
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.10.2012, 19:43 #10
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
#include <iostrem.h>
#include <time.h>
double abs(double x)
{
 if (x<0.0)
 {
   return -x;
 }
 return x;
}
int mian ()
{
 double x, v;
 randomize(time());
 x=rnd%100+((double)(rnd%1001)/1000.0;
 do
 {
  cin>>v;
  if ((v-x)>=0.001)
  {
   cout<<endl<<"Загаданное число меньше."<<endl;
  }
  if ((v-x)<=0.001)
  {
   cout<<endl<<"Загаданное число больше."<<endl;
  }
 } while (abs(x-v)>0.001);
 cout<<"Да, я загадал "<<x<<"."<<endl;
 return 0;
}
1
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 180
09.10.2012, 20:15 #11
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
37
38
39
40
41
42
43
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
int main ()
{
    setlocale(LC_ALL,"Russian"); 
 
    srand ( time(NULL) );
    int num=rand() % 100;
 
    char ch=' ';
    int num2=0;
    int j=0;
 
    do
    {
        while(j<10)
        {
            cout << "Введите число: ";
            cin >> num2;
            j++;
            if( num < num2)
                cout << "Слишком большое число!" << endl;
            if( num > num2)
                cout << "Слишком маленькое число!" << endl;
            if( j == 10)
                {cout << endl << "Вы не смогли отгадать число " << num << " c 10ти попыток!" << endl; break;}
            if( num2 == num )
                {cout << endl << "Вы угадали число! c " << j << " попыток!" << endl; break;}
        }
 
    cout << "Еще раз? (y/n):_\b";
    cin >> ch; cout << endl; j=0;
    }
    while( ch != 'n' );
    
 system ("pause");
 return 0;
}
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.10.2012, 20:00 #12
Цитата Сообщение от taras atavin Посмотреть сообщение
if ((v-x)<=0.001)
Должно быть if ((v-x)<=-0.001)
0
danja702
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 19
11.10.2012, 12:06  [ТС] #13
Больше спасибо за ответ.
Кажется, разобралась!

Только не понимаю зачем нужно #include "stdafx.h"
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
11.10.2012, 12:17 #14
Я без него обошёлся.
0
silent_1991
Эксперт С++
4986 / 3043 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
11.10.2012, 12:53 #15
Цитата Сообщение от danja702 Посмотреть сообщение
Только не понимаю зачем нужно #include "stdafx.h"
Не нужен он. Это фишка исключительно Microsoft Visual Studio, можете о ней не беспокоиться и просто исключить из кода.
0
11.10.2012, 12:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 12:53
Привет! Вот еще темы с ответами:

Напишите программу, которая выводит цену яблок, начиная с 100 г до 1 кг с шагом 100 г. Цена 1 кг должен быть в - C++
Напишите программу, которая выводит цену яблок, начиная с 100 г до 1 кг с шагом 100 г. Цена 1 кг должен быть введен с клавиатуры. Если цена...

Угадать число от 1 до 100 за 7 попыток: есть ли более изящный подход, чем if/else? - C++
Задача заключается в том что нужно написать программу который угадывает число пользователя от 1 до 100 есть только 7 попыток. Я понимаю что...

Пользователь должен отгадать рандомное число - C++
Всем привет:-) Начал изучать c++ самостоятельно и часто посещал ваш форум как гость. Спустя некоторое время понял, что если...

Где должен находиться файл, чтоб программа его открыла, или как указывать его имя? - C++
Пытаюсь работать с файлами. Объясните, пожалуйста, где должен находиться файл, чтоб программа его открыла или как указывать его имя


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru