0 / 0 / 0
Регистрация: 22.11.2021
Сообщений: 8
1

Кольцевая очередь выводит мусор

10.03.2022, 22:40. Показов 505. Ответов 2

Author24 — интернет-сервис помощи студентам
Только взял эту тему на изучение, стал решать задачу. Реализовать автосервис где появляется очередь из машин со случайными параметрами. В программе я пока что заменил кол-во авто на 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
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <iostream>
 
 
using namespace std;
 
struct Car
{
    char make[50];
    char fuel[50];
    int capacity;
    int remaining;
    int wash;
 
    Car* next;
};
 
typedef Car* PCar;
void add(PCar& h, PCar& t);
void del(PCar& h, PCar& t);
void see(PCar h);
 
 
int main()
{
 
 
    PCar h, t;
    h = t = NULL;
 
    int num0 = 2;
    cout << num0 << endl;
    for (int i = 0; i < num0; i++)
    {
        add(h, t);
    }
    see(t);
}
 
void add(PCar& h, PCar& t)
{
    PCar n; // pointer to struct
    cout << "working...";
 
    n = new Car;
    n->next = 0;
 
    int model = rand() % 4;
    int fuel = rand() % 4;
    switch (model)
    {
    case 1:
        n->make == "BMW";
        break;
 
    case 2:
        n->make == "Mercedes";
        break;
    case 3:
        n->make == "Honda";
        break;
 
    case 4:
        n->make == "Mazda";
        break;
    }
 
    switch (fuel)
    {
    case 1:
        n->make == "AI-95";
        break;
 
    case 2:
        n->make == "AI-98";
        break;
 
    case 3:
        n->make == "DT";
        break;
 
    case 4:
        n->make == "AI-92";
        break;
    }
 
    n->capacity = rand() % 50 - 81;
    int possiblefuel = n->capacity;
    n->remaining = rand() % possiblefuel;
 
    int washing = rand() % 1;
 
    if (!h)
    {
        h = t = n;
    }
    else
    {
        t->next = n;
        t = n;
    }
 
 
 
 
    cout << "done";
    cout << endl;
}
 
 
void see(PCar h) {
 
    cout << "see " << endl;
    PCar h1;
    h1 = h;
    if (!h1)
    {
        cout << "no cars";
        return;
    }
    do
    {
        cout << h1->make << endl;
        cout << h1->fuel << endl;
        cout << h1->capacity << endl;
        cout << h1->remaining << endl;
        cout << h1->wash << endl;
 
        h1 = h1->next;
    } while (h1 != NULL);
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2022, 22:40
Ответы с готовыми решениями:

Кольцевая однонаправленная очередь
Здравствуйте! Нужно реализовать кольцевую однонаправленную очередь. С простой очередью разобрался,...

Создать на базе класса с реализацией очереди клас потомок — кольцевая очередь
Доброго времени суток. Я хотел создать на базе класса с реализацией очереди клас потомок -...

Как создать программу для работы с очередью, используя массив (кольцевая очередь)?
Можно ли разработать программу для работы с очередью(кольцевая очередь) без шаблонных функций и...

Игра "Однорукий бандит". Кольцевая очередь. Двусвязный список
Здраствуйте. Задание: &quot;Создать игру &quot;Однорукий бандит&quot;. При нажатии кнопки Enter происходит...

Выводит в конце мусор
Задание такое: напишите функцию print_array (ostream os, int* a, int n) выводящую в поток os...

2
27 / 59 / 32
Регистрация: 06.08.2020
Сообщений: 215
13.03.2022, 18:42 2
Хорошо, что вообще запускается. Попытался вникнуть в смысл кода функции add и завис. Создается указатель на структуру, под него выделяется динамическая память. далее двум целочисленным переменным псевдослучайно присваиваются числа от 1 до 4. И в кейсах идет сравнение не инициализированного поля структуры с маркой машины Аналогичное волшебство с топливом, непонятки с мойкой. Ну и разумеется освобождение памяти нигде не наблюдается.
0
AxBxC=X
152 / 132 / 58
Регистрация: 27.04.2016
Сообщений: 540
13.03.2022, 19:38 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
41
42
43
44
45
46
#include <iostream>
 
using namespace std;
 
struct Car
{
    char * make;
    int fuel; // 0 - DT, 1 - AI-95, ...
    int capacity;
    int remaining;
    int wash;
    Car* next;
};
 
Car * head = NULL,* tail = NULL;
char * fuels[] = {"DT","AI-95","AI-98"};
 
void add_item(char * name, int fuel)
{
 Car * p = new Car;
 p->make = name;
 p->fuel = fuel;
 if(head && tail) tail->next = p; else head = p;
  tail = p;
  tail->next = head;
}
 
void print_list()
{ Car * p = head;
 if(p)
 do { cout << p->make << " " << fuels[p->fuel] << endl;
    p = p->next;
    } while (p != head);
}
 
int main(int argc, char* argv[])
{
  add_item("Maz-Da",1);
  add_item("BMW",1);
  add_item("Mercedes",0);
 
  print_list();
 
 // system("pause");
  return 0;
}
0
13.03.2022, 19:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2022, 19:38
Помогаю со студенческими работами здесь

Выводит не имя, а мусор
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;ctime&gt; using namespace std; #pragma...

Выводит мусор в строке
Выводит мусор в конце строки 2 после функции str_tok хоть я и обнуляю последний элемент в ней ...

Структура выводит мусор
здравствуйте. Почему данный код выводит мусор? Я неправильно присваиваю? void poisk_cena(){ if...

Массив выводит мусор
Массив AFR должен выводить все числа, кроме минимального и мин. по модулю из массива А. Вместо...

Выводит мусор, не пойму почему
Есть три объекта. Person one; Person two(&quot;Smythecraft&quot;); Person three(&quot;Dimwiddy&quot;, &quot;Sam&quot;); и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru