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

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

Войти
Регистрация
Восстановить пароль
 
Mr_Mario
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 5
#1

Массив "hotel", в который пользователь добавляет "жильцов" - C++

14.07.2015, 18:13. Просмотров 267. Ответов 4
Метки нет (Все метки)

Дорогие форумчане, помогите мне решить проблему в данной программе!

Суть программы: Есть массив "hotel", в который пользователь добавляет "жильцов" (присваивает значения переменным из массива), вводит он их с клавиатуры. Так же если пользователь "не хочет никого туда заселять", он вводит вместо "имени заселяемого" слово "нет!", что присваивает переменной значение "свободен". Либо если он вообще не хочет "никого заселять", он вводит слово "стоп!", что останавливает игру. И еще при начале игры, всем переменным массива "hotel" присваиваются значения "свободен".

Теперь о проблеме: при выборе пункта "начать играть", выводится такая ошибка:
11 [main] ____________ 1336 cygwin_exception::open_stackdumpfile: Dumping stack trace to ____________.exe.stackdump
ВЫПОЛНЕНИЕ FAILED (значение выхода 35*584,, общее время: 2s)

Вот сам код программы:
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
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
 
void play(int floor, int number);
void help();
int main()
{
    int user_answer, floor, number;
    floor = 3;
    number = 5;
    do {
       cout <<"Меню игры: \n"; 
       cout <<"1. Начать игру.\n";
       cout <<"2. Строительсво гостиницы.\n";
       cout <<"3. Справочник по игре.\n";
       cout <<"4. Выход из игры.\n";
    do {
        cout <<"Выбранный вариант: ";
        cin >> user_answer;
    } while(user_answer < 1 || user_answer > 4);
    switch(user_answer){
        case 1:
            play(floor, number);
            break;
        case 2:
            // изменение параметров массива "гостиницы"
            cout <<"Вы вошли в режим строительства:\n";
            cout <<"Введите количество этажей:";
            cin >> floor;
            cout <<"Введите колчество номеров:";
            cin >> number;
            break;
        case 3:
            cout <<"Справочник, появится в новой версии.";
            break;
        case 4:
            cout <<"Игра окончена!";
            break;
    }
    } while(user_answer != 4);
    
    return 0;
}
void play(int floor, int number)
{
    int t, i;
    char* hotel[floor][number];
    //присваивание всем элементам массива, значения "свободен"
    for(t = 0; t < floor; t++){
        for(i = 0; i < number; i++){
            strcpy(hotel[t][i], "свободен");
        }
    }
    cout <<"Регистрация жильцов гостиницы:\n";
    //"заселение жильцов в отель" 
    for(t = 0; t < floor; t++){
        for(i = 0; i < number; i++){
            cout <<"Этаж " << t <<", номер " << i <<":";
            gets(hotel[t][i]);
            if(hotel[t][i] == "нет!") strcpy(hotel[t][i], "свободен"); //если не хочешь заселять номер.
            if(hotel[t][i] == "стоп!"){  // если вообще ни хочешь ничего делать.
                strcpy(hotel[t][i], "свободен");
                return;
            }
        }
    }
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2015, 18:13     Массив "hotel", в который пользователь добавляет "жильцов"
Посмотрите здесь:

Ошибка при компиляции, отсутствие ";" перед "*" - C++
Доброго времени суток уважаемые форумчане. Пишу вам с надеждой о помощи. Как и было написано выше, компилятор ругается и не могу понять...

"вставка" с "заменой" текста в файле. - C++
Здравствуйте. Решил для обретения бесценного опыта написать свой простенький парсер конфигов. Вообщем читает вполне себе читает...

Классы "Небесное тело" и "Планета" - C++
Создать класс CelestialBody(небесное тело) , который содержит следующие элементы: -поле&quot;масса&quot; float Mass; -поле &quot;радиус&quot; float ...

Синтаксическая ошибка: отсутствие ";" перед "<" - C++
Совсем мозг замылился, ничего не пойму, есть допустим такой класс #include &lt;vector&gt; class g { vector &lt;int&gt; j; }; а он в...

Вопрос про "Наследование" и "Объединение" - C++
Доброго времени суток. Изучаю ООП, пока что не удачно. Появилось пару вопросиков. первый вид Animals // Млекопитающие class...

Заменить "fopen" в c++ на "TOpenDialog" в Builder6 - C++
Здравствуйте дорогие форумчане! 1. Что дано: По результатам чтения 1 части книги Пахомова &quot;C++ Для начинающих&quot; написал...

Перегрузка оператора "+", чтобы выполнял "*" - C++
Ребят, привет всем, возник такой вопрос: возможно ли перегрузить оператор &quot;+&quot; так, чтоб выполнялось умножение? Например вводится...

Ошибка: namespace "geoo" has no member "ch" - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace::std; namespace geoo { double PI = 3.14; double circumf(double...

Заменить словах каждую букву "о" на "ма" - C++
Заменить словах каждую букву &quot;о&quot; на &quot;ма&quot;. Помогите найти ошибку. После того как ввожу строку выходит не пойми что. #include...

Иерархия классов "люстра", "лампа" - C++
Реализовать и протестировать иерархию классов (родительский и производные) : Настольная лампа с автоматическим регулятором освещенности ...

Замена "conio.h" и "gotoXY" в Xcode - C++
Здравствуйте. В программе мне необходимо использовать команду gotoXY, но Xcode говорит что не знает такую команду, а библиотека conio.h...

В тексте заменить символы "fh" на символ "с" - C++
дан входной файл нужно обработать и записать в выходной вот задание В тексте заменить символы &quot;fh&quot; на символ &quot;с&quot;. В тексте несколько...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,056
Завершенные тесты: 1
14.07.2015, 18:45     Массив "hotel", в который пользователь добавляет "жильцов" #2
Цитата Сообщение от Mr_Mario Посмотреть сообщение
char* hotel[floor][number];
заменить на
char hotel[floor][number];
Mr_Mario
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 5
14.07.2015, 18:58  [ТС]     Массив "hotel", в который пользователь добавляет "жильцов" #3
Цитата Сообщение от Raali Посмотреть сообщение
заменить на
char hotel[floor][number];
Не помогло. Получается еще больше ошибок. Так как в типе "char" в одном элементе можно вместить один символ,
а если прибавить "*" сколько угодно.
HELLKAR
14 / 14 / 7
Регистрация: 11.04.2015
Сообщений: 50
Завершенные тесты: 1
15.07.2015, 14:41     Массив "hotel", в который пользователь добавляет "жильцов" #4
Попробуй немного изменить главную функцию:
C++
1
2
3
4
5
6
int main()
{
    setlocale(LC_ALL,"Russian");
    int user_answer, floor, number;
    floor = 3;
    number = 5;
И еще пробуй использовать другой компилятор, а не GCC.
Может просто не хватает нужных библиотек для этого компилятора
Zazy
42 / 42 / 13
Регистрация: 14.04.2013
Сообщений: 181
15.07.2015, 16:34     Массив "hotel", в который пользователь добавляет "жильцов" #5
49 строка, вам нужен динамический массив
62 и 63 строка, строки в стили Си сравниваются strcmp();
Yandex
Объявления
15.07.2015, 16:34     Массив "hotel", в который пользователь добавляет "жильцов"
Ответ Создать тему
Опции темы

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