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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
POMIDORKA
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
#1

"Угадай число" (напишите программу, хочу проверить со своей). - C++

29.06.2011, 13:49. Просмотров 3192. Ответов 20
Метки нет (Все метки)

"Угадай число". Пользователю предлагается отгадать число за 10 попыток. Программа даёт подсказки вида больше, меньше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2011, 13:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос "Угадай число" (напишите программу, хочу проверить со своей). (C++):

Написать программу "Угадай число" - C++
Один из играющих задумывает число от 1 до 1000, другой пытается угадать его за 10 вопросов вида: верно ли, что задуманное число больше...

Game "Угадай число" как зделать запрет на "букви" ???? - C++
Привет всем кто решил помочь. Написал прогру, но есть проблемка, когда ввожу "букву" вся прога беситса как мне зделать так что б он...

Программу "Угадай число" - C++
Необходимо написать программу "Угадай число". После того,как число угадано, программа спрашивает, хотите ли вы еще раз сыграть. После ввода...

Написать игру "Угадай число", используя цикл while - C++
ку,нужно написать игру где компьютер угадывает число допустим за 7 попыток,использовать while.

Реализовать генерацию случайных чисел для игры "Угадай число" - C++
Всем привет!написал код для игры. По условию компьютер должен загадать число от 1 до 100 и пользователь должен отгадать это число за 6...

Нужен совет по задаче "Угадай число" - C++
Вася загадал число от 1 до N. За какое наименьшее количество вопросов (на которые Вася отвечает "да" или "нет") Петя может угадать Васино...

20
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.06.2011, 13:53 #2
Цитата Сообщение от POMIDORKA Посмотреть сообщение
Программа даёт подсказки вида больше, меньше.
а какой диапазон чисел?
0
POMIDORKA
1 / 1 / 0
Регистрация: 11.05.2011
Сообщений: 30
29.06.2011, 13:54  [ТС] #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
#include "stdafx.h"
#include <time.h>
#include <stdio.h>
#include <iostream>
 
void main()
{
    srand(time(0));
    int n=0,m=0,i=0;
    m=rand()%1024;
    while(i<10)
    {
        i++;
        printf("vvedite ygadivaemoe chislo n= ");
        scanf("&f",&n);
        if(n<m)
        {
            printf("net bolshe\n");
        }
        else
        {
            if(m<n)
            {
                printf("net menshe\n");
            }
            else
            {
                printf("da\n vi sdelali %d hodov",i);
                i=10;
            };
        }
    }
    scanf("%i",&n);
}
Добавлено через 40 секунд
любой
0
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
29.06.2011, 13:56 #4
Напиши лучше программу, которая так же отгадывает у пользователя его число, а он только вводит больше/меньше. ИМХО, так сложнее и интереснее.
0
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
29.06.2011, 14:10 #5
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define LOWER_BOUND 0
#define UPPER_BOUND 20
 
int main()
{
    srand(time(NULL));
    int target_num =
        rand() % (LOWER_BOUND + UPPER_BOUND + 1) - LOWER_BOUND;
    int user_num;
    size_t attempts = 10;
        printf("You have %d attempts.\n", attempts);
    while (attempts)
    {
        printf("Enter a number from %d to %d: ",
            LOWER_BOUND, UPPER_BOUND);
        scanf("%d", &user_num);
                --attempts;
 
        if (user_num > target_num)
            printf("Less\n");
        else if (user_num < target_num)
            printf("Greater\n");
        else {
            printf("Guessed!\n");
            exit(0);
        }
    }
    printf("Your attempts run out.\n");
    exit(0);
}
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.06.2011, 14:15 #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdlib.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{ int a,b,i;    a=rand()%1024;
i=10;
while (i--)                             {
scanf ("%d",&b);
      if (b<a) printf ("\nBolshe");
        else if (a=b) { printf ("\nUgagali");   break;}
                else printf ("\nMenshe");
             }
 
 
 
    return 0;
}
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.06.2011, 14:30 #7
Цитата Сообщение от go Посмотреть сообщение
else if (a=b)
... ==
0
-=ЮрА=-
Заблокирован
Автор FAQ
29.06.2011, 14:34 #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
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
 
void main()
{
start:
    printf("Vvedite chislo povtorov\t:");
    int i = 0,nCount;scanf("%d",&nCount);
    if(nCount < 1)
        nCount = 1;
    srand(time(0));
    int NUM = rand() % 1024,OTVET;
    while(i < nCount)
    {
        printf("\tPopitka %d\r\n",i + 1);
        printf("Vvedite otvet\t:");
        scanf("%d",&OTVET);
        if(NUM == OTVET)
        {
            printf("YGADALI!!!");
            break;
        }
        else
        if(NUM < OTVET)
            printf("YGADIVAEMOE CHISLO MENSHE %d\r\n",OTVET);
        else
            printf("YGADIVAEMOE CHISLO BOLSHE %d\r\n",OTVET);
        i++;
    }
    if(i == nCount && OTVET != NUM)
        printf("VI NE YGADALI!\r\nZAGADIVAEMOE CHISLO %d\r\n",NUM);
    printf("Press NUM1 to RESTART\r\n");
    scanf("%d",&i);
    if(i == 1)
        goto start;
}
0
Миниатюры
"Угадай число" (напишите программу, хочу проверить со своей).  
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.06.2011, 14:44 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdlib.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{ int a,b,i;    a=rand()%1024;
i=10;
while (i--)                             {
scanf ("%d",&b);
          if (b<a) printf ("\nBolshe\n");
                else if (a==b) { printf ("\nUgagali");   break;}
                                else printf ("\nMenshe\n");
                         }
 
 
 
        return 0;
}
Добавлено через 37 секунд
Цитата Сообщение от asics Посмотреть сообщение
... ==
Спасибо
0
voral
490 / 470 / 79
Регистрация: 16.03.2008
Сообщений: 2,219
29.06.2011, 15:15 #10
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <time.h>
#include <stdio.h>
int main()
{
    srand(time(0));
    int i, n=0,m = rand()%1024;
    printf("%d\n",m);
    for (i=0;i<10;++i)
    {
        printf("vvedite ygadivaemoe chislo n= ");
        scanf("%d",&n);
        if (n==m)
        {
            printf("da\nvi sdelali %d hodov\n",i);
            break;
        }
        else
            printf("net %s\n", (m>n) ? "bolshe" : "menshe");
    }
    if (n!=m) printf("Ne ugadali\n");
    return (n==m);
}
Добавлено через 2 минуты
Цитата Сообщение от POMIDORKA Посмотреть сообщение
scanf("&f",&n);
Что в вашем коде означает "&f"?
Имхо не "&" а "%"
И не "f", а "d" - вы ж целые угадываете
0
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
29.06.2011, 16:35 #11
Есть на С++ у меня:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream> //
using std::cout;    //
using std::cin;     //
using std::endl;    //
                    //
#include <cstdlib>  //
using std::rand;    //
using std::srand;   //
                    //
#include <ctime>    //
using std::time;    //
                    //
#include <conio.h>  //
//////////////////////
 
int main()
{
    cout << "\t\t| Hello! Thank you for using this application! |" << endl;
    cout << "\t\t|______________________________________________|" << endl;
    
    char choice; // выбор пользователя (да/нет) на повторение игры
    
 do
 {
    int random;  // случайное загаданное программой число
    int guess;   // число введенное пользователем
    
    cout << endl << endl;
    cout << "\t\tMy number is between 1 and 1000. Can you guess it?" << endl << endl;    // текст
    cout << "\t\t     Please, enter your first attempt: ";    // просит ввести первую попытку
    cin >> guess;     // записывает догадку в переменную
    
    srand (time (0) );             // совсем рандом
    random = 1 + rand() % 1000;    // задаём диапазон рандома (1 - 1000)
    
    // цикл решения больше/меньше
    while (guess != random)
     {
        if (guess > random)
         {
           cout << "\t\t\t    Too high. Try again: ";
           cin >> guess;
         }
        
        if (guess < random)
         {
           cout << "\t\t\t    Too small. Try again: ";
           cin >> guess;
         }
     }
     
     // ответ, если число таки угадали
     if (guess == random)
      {
        cout << endl;
        cout << "\t\t\t    Yeah! You are right!";
      }   
      
      // спрашивает, хочется ли сыграть ещё
      cout << endl;
      cout << "\t\t\tDo you want play again? [y/n]: ";
      cin >> choice;
      
      if (choice == 'y')
      {
      cout << ">______________________________________________________________________________<";      
      cout << endl << endl;
      }
 } while (choice != 'n');
         
      cout << endl;
      cout << "\t\t\t       Thank you! Bye!";
       
    getch();
    return 0;
}
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.06.2011, 16:37 #12
vortexx1, так по условие только 10 попыток
0
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
29.06.2011, 17:48 #13
Ну, можно ведь модифицировать немного
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,849
29.06.2011, 19:17 #14

Не по теме:

Это в продолжение темы "Напешыте хело ворлд"?



C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define MAX_NUMBER 100
#define MIN_NUMBER 1
#define ATTEMPTS 10
    
int main(void){
    int i, yourNumber, myNumber;
    
    srand(time(NULL));
    myNumber = rand() % MAX_NUMBER + MIN_NUMBER;
    
    for ( i = 0; i < ATTEMPTS && printf("Guess number from %d to %d (%d attempts left): ", MIN_NUMBER, MAX_NUMBER, ATTEMPTS - i) && scanf("%d", &yourNumber) == 1 && yourNumber != myNumber; ++i )
        printf("My number is %sward\n", ( myNumber > yourNumber ) ? "up" : "down");
    
    printf("\nYou %s!\n", ( i < ATTEMPTS ) ? "win" : "lose");
    
    return 0;
}
0
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
30.06.2011, 17:24 #15
Цитата Сообщение от vortexx1 Посмотреть сообщение
Напиши лучше программу, которая так же отгадывает у пользователя его число, а он только вводит больше/меньше. ИМХО, так сложнее и интереснее.
Вот начиркал прогу, вы указывайте диапазон и число попыток компьютеру, своё число держите в уме, подсказыайте ему вот комманды: меньше, больше, угадал.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
 
wchar_t  wtolower(wchar_t  ch)  {
     if(ch >= 1072)
         return  ch;
     if(ch + 0x20 >= 0x430 && ch + 0x20 <= 0x44F)
         return ch + 0x20;
     return ch;
}
 
 
bool  wstricmp(const wchar_t*  src, const wchar_t*  dst) {
      while( wtolower(*src) == wtolower(*dst) ) {
           *src++;
           *dst++;
           if( *src == L'\0' && *dst == L'\0')
                return true;
      }
      return  false;
}
 
 
//  диапазон угадывания: first < N < last
void  main(void) {
 
   srand(time(NULL));
   setlocale(LC_ALL, "Russia");  // "rus_rus.866" - в MS VC++ 6.0 такую локаль ставьте а не "Russia"
   system("color 17");
   const wchar_t*  CMD[4] = { L"меньше", L"больше", L"угадал" };
 
prev:
   int first, last, pos, counter = 1, number = 0;
 
   wprintf(L"Задумайте число в уме, компьютер попробует его угадать, задайте диапазон.\nОт: ");
   wscanf(L"%d", &first);
   wprintf(L"До: ");
   wscanf(L"%d", &last);
   wprintf(L"Максимальное число попыток, чтобы угадать: ");
   wscanf(L"%d", &number);
 
   wchar_t   str[32];    
 
   while(1) {
       pos = last - first;
       if(pos <= 0){
          wprintf(L"Вы наверное жульничаете !\n");
          goto jump;
          break;
       }
       pos = first + rand() % pos;
       wprintf(L"Вот это число: %d\n",  pos);
       wprintf(L"\t\tВаш ответ: ");
       wscanf(L"%s", str);
 
       if( wstricmp(str,  CMD[0]))    // меньше
             last  = pos;
       else if( wstricmp(str, CMD[1])) // больше
             first = pos + 1;
       else if(wstricmp(str, CMD[2]))   // угадал
             break;
       else {
             wprintf(L"Неизвестная комманда !\n");
             continue;
       }
       counter++;
       if(counter > number)
            break;
   }
 
   if(counter <= number)
         wprintf(L"Компьютер угадал ваше задуманное число за N - %d попыток.\n\n", counter);
   else
         wprintf(L"Очень жаль что я не угадал...\n\n");
jump:
   wprintf(L"Начать заново, Да или Нет ? _ ");
   wscanf(L"%s", str);
   if(wstricmp(str, L"да")) {
        system("cls");
        goto  prev;
   }
 
}
0
30.06.2011, 17:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2011, 17:24
Привет! Вот еще темы с ответами:

Исправить ошибки в программе "угадай число" - C++
суть программы, генерирует случайное число от 1 до 1000, запрашивает число и говорит больше или меньше, если введено не число выдаёт...

Готовая игра "угадай число" - C++
#include &lt;iostream.h&gt; int main () { int x=rnd%256; int d; int masks={0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; ...

Оптимизация игры "Угадай число" - C++
Буду рад если подскажите что здесь лишние. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;iostream&gt; ...

Игра "Угадай число" - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main(){ setlocale(LC_ALL,&quot;rus&quot;); int num, ques, i, menu=1,...


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

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

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