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

Не знаю как прописать main

18.03.2016, 15:56. Показов 382. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В университете задали написать прогу с различными функциями сортировки стеков, поиска мин элемента и тд.
Функции написали, а вот main не врубаюсь...
помогите!
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
#include<iostream>
using namespace std;
struct building
{
    int number_room;
    building *next;
};
void New_List(int n){
    building *a = new building;
    for (int i = 0; i < n ; i++){
        a->number_room = rand();
        a = a->next;
    }
}
void Push(building *s1,building *s2,int n){//функция добавления списка s2 в s1 на n-ое место
    for (int i = 0; i < n-1; i++)// доходим до ячейки n-1 т.к будет добавлять в следущую
        s1=s1->next;
    while (s2 != NULL){ // пока списое s2 не закончился 
        building *p = s1->next;// запоминаем что должно быть в следующей ячейке 
        s1->next = s2;//меняем это на ячейку из списка s2
        s1 = s1->next;
        s1->next = p;//соединяем список s1 с запомненным хвостом
        s2 = s2->next;
    }
 
}
void Delet(building *s, int k, int n){//удаление k членов с n позиции
    for (int i = 0; i < n - 1; i++)// доходим до ячейки n-1 т.к будем удалять в следущую
        s = s->next;
    for (int i = 0; i < k; i++){
        building *p = s->next;// запоминаем позицию удаляемого элемента 
        s->next = s->next->next;//исключаем удаляемый элемент из цепочки списка
        delete p;//удаляем элемент
    }
}
int Quantity(building *s){// количество элементов списка
    int quan = 0;
    while (s != NULL){
        quan = quan + 1;//считаем элементы
        s = s->next;//и идем дальше
    }
    return quan;
}
void InsertSort(building *s){//сортировка вставками
    int quan = Quantity(s);//длина списка
    building* *mas = new building*[quan];//массив ссылок
    building *x;
    int key = 0;
    for (int i = 0; i < quan; i++){//создаем массив ссылок на элементы списка получая в итоге подобие списка только ввиде массива 
        mas[i] = s;
        s = s->next;
    }
    for (int i = 0; i < quan-1; i++){//сортируем массив вставками при этом при изменении мест ячеек массива меняем и указатель на следующий элемент в списке  
        key = i + 1;
        x = mas[key];
        for (int j = i + 1; j > 0; j--){
            if (x->number_room < mas[j - 1]->number_room){
                mas[j] = mas[j - 1];//изменение в массиве
                mas[j - 2]->next = mas[j];//изменение в указателях элементов списка
                mas[j]->next = mas[j - 1];//изменение в указателях элементов списка
                mas[j - 1]->next = mas[j + 1];//изменение в указателях элементов списка
                key = j - 1;
            }
        }
        mas[key] = x;//изменение в массиве
        mas[i]->next = mas[key];//изменение в указателях элементов списка
        mas[key]->next = x;//изменение в указателях элементов списка
        x->next = mas[key + 1];//изменение в указателях элементов списка
    }
}
int Dublicate(building *s){// функция подсчета количества дуюликатов
    int dub = 0;//кол-во дубликатов
    int quan = Quantity(s);//длина списка
    int *mas = new int[quan];//массив для хранения значений элементов списка изначально пустой
    int j = 0;//кол-во не дубликатов
    while (s!=NULL)
    {
        bool b = true;//поднимаев флаг(true)
        for (int i = 0; i < quan; i++){
            if (s->number_room == mas[i]){//если значение текущего элемента было найдено в массиве
                b = false;//опускаем флаг(false)
                dub++;//считаем его как дубликат
            }
        }
        if (b == true){//если текущий элемент не дубликат 
            mas[j] = s->number_room;//добавляем его в массив
            j++;//и увеличиваем кол-во не дубликатов
        }
        s = s->next;
    }
    return dub;
}
void Loop(building *s){//Функция поиска и удаления петли
    building *fast=s, *slow=s;//Создаем два указателя
    fast=fast->next->next;//Начинаем их передвигать так чтобы один двигался на один шаг быстрее
    slow=slow->next;
    while (slow == fast){//Указатели двигаются пока они не встреться 
        fast = fast->next->next;
        slow = slow->next;
        if (fast == NULL && slow == NULL)
            cout << "Нет петли";
    }
    slow = s;//После встречи указателей передвигаемый медленный в начало списка 
    while (fast==slow)//Вновь запускаем указатели на этот раз они должны остановиться на элементе начала узла цикла
    {
        fast = fast->next->next;
        slow = slow->next;
    }
    while (slow->next == fast){//Запускаем медленный указатель чтобы узнать последний элемент списка т.е указывающий на узел(указатель fast)
        slow = slow->next;
    }
    slow->next = NULL;//Меняем указатель последнего элемента на NULL теи самым размыкая петлю
}
void Delet_Dub(building *s){//функция удаления дубликатов
    int quan = Quantity(s);//длина списка
    int *mas = new int[quan];//массив для хранения значений элементов списка изначально пустой
    int j = 0;//кол-во не дубликатов
    building *p=s;//указатель на предыдущий элемент
    while (s != NULL)
    {
        bool b = true;//поднимаев флаг(true)
        for (int i = 0; i < quan; i++){
            if (s->number_room == mas[i]){//если значение текущего элемента было найдено в массиве
                b = false;//опускаем флаг(false)
                p->next = s->next;//и исключаем текущий элемент соединяя предыдущий элемент со следующим
            }
        }
        if (b == true){//если текущий элемент не дубликат 
            mas[j] = s->number_room;//добавляем его в массив
            j++;//и увеличиваем кол-во не дубликатов
            p = s;//и помечаем текущий элемент как предыдущий
        }
        s = s->next;
    }
}
void Contecat(building *s1, building *s2){//функция соединения списков
    while (s1 != NULL){//двигаемся к концу первого списка
        s1 = s1->next;
    }
    while (s2 != NULL){//пока не закончился второй список
        s1->next = s2;//текущий элемент списка два делаем следующим для первого
        s2 = s2->next;//продвигаемся по второму списку
    }
}
void Intersection(building *s1, building *s2){//функция вывода персечения списков 
    while (s1 != NULL){//для каждого элемента списка 1
        while (s2 != NULL){// мы полностью проходим список 2 и сравниваем его элементы с текущим элементом списка 1
            if (s1->number_room == s2->number_room)//если текущий элементы списков равны 
                cout << s2->number_room;//мы выводим их
            s2 = s2->next;
        }
        s1 = s1->next;
    }
}
void Symetric(building *s1, building *s2){//функция вывода обратной симметрии
    while (s1 != NULL){// сравниваем список 1 со списком 2
        bool b = true;//поднимем флаг для проверки совпадения(true) 
        while (s2 != NULL){//проходя по списку 2 мы сравниваем его элементы с текущим элементом из списка 1
            if (s1->number_room == s2->number_room) 
                b = false;// если элементы оказались равны мы опускаем влаг(false)
            s2 = s2->next;
        }
        if (b == true)//пройдя по всему списку 2 мы смотрим не было ли совпадений 
            cout << s1->number_room;//tнсли нет выводим элемент
        s1 = s1->next;//и переходим к седующему элементу из списка 1
    }
    while (s2 != NULL){//тоже самое делаем наоборот сравниваем список 2 со списком 1
        bool b = true;
        while (s1 != NULL){
            if (s2->number_room == s1->number_room)
                b = false;
            s1 = s1->next;
        }
        if (b == true)
            cout << s2->number_room;
        s2 = s2->next;
    }
}
void ConsoleShow(building *s){//функция вывода
    int n = Quantity(s);//узнаем длину списка
    for (int i = 0; i < n; i++){
        cout << s->number_room;//выводим элемент списка
        if (i != n - 1)//если элемент не последний
            cout << "->";//ставим стрелочку
        s = s->next;
    }
}
int Search(building *s, int value){//функция поиска номера элемента по его значению 
    int n = Quantity(s);//длина списка
    int p = 0;//номер элемента
    for (int i = 1; i <= n; i++){
        if (s->number_room == value)//если текущий элемент списка равен заданному
            p = i;//присвоим значения шага цикла переменной хранящей номер элемента
        s = s->next;
    }
    return p;//если данный элемент был не найден функция вернет ноль
}
int Min_Element(building *s){//функция поиска минимального элемента
    int min = s->number_room;//пусть первыйэлемент будет считаться минимиальным
    while (s!=NULL){
        if (s->number_room < min)//если текущий элемент списка меньше минимальног
            min = s->number_room;//делаем его минимальным
        s = s->next;
    }
    return min;
}
 
void main()
{
    //русский язык консоли
    setlocale(LC_ALL,"Russian");
    
    
 
    //задержка окна
    system("pause");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2016, 15:56
Ответы с готовыми решениями:

что нужно прописать в main чтобы изменить, дайте совет
что нужно прописать в main чтобы изменить, дайте совет, а то уже голова болит. выходит за рамки,...

Ошибка no main class (заголовок com/javafx/main/Main) на другом компьютере
У меня возникла такая проблема. Если я создаю пример JavaFX приложения в Netbeans и компилирую его...

Как обозначить дату если я знаю только месяц и год, а число не знаю
чтобы был формат ячейки дата например xx.10.2016 дату я не знаю! Добавлено через 2 минуты...

Exception in thread "main" java.lang.NullPointerException at Main.main
Извините, перемещю в нужный раздел как только найду как это сделать Задание: Создать масив...

2
43 / 43 / 20
Регистрация: 08.12.2010
Сообщений: 342
18.03.2016, 16:03 2
Я один не понял,что ему надо? Да и вряд ли сами написали =)
0
0 / 0 / 0
Регистрация: 26.11.2014
Сообщений: 14
18.03.2016, 16:17  [ТС] 3
Цитата Сообщение от Ника)) Посмотреть сообщение
Я один не понял,что ему надо? Да и вряд ли сами написали =)
Даны функции на различные операции в стеках, я не понимаю как main прописать, чтобы программа выводила все ответы по функциям: мин элемент, есть ли петля и тд...
0
18.03.2016, 16:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2016, 16:17
Помогаю со студенческими работами здесь

Main.cpp: In function ‘int main()’: main.cpp:10:1: error: ‘then’ was not declared in this scope
Написал программу и выдает ошибку. #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std;...

Ошибка IntelliJ IDEA Error: Could not find or load main class Main
package lysenko; public class Dog { String name; public static void main(String...

Must have startup form or Sub Main() - Должен иметь начальную форму или Sub Main
Здравствуйте, никогда так ранее не делал, нужно скомпилировать проект, который без формы вставил...

Error: Could not find or load main class com.intellij.idea.Main
$ java -version openjdk version &quot;1.8.0_151&quot; OpenJDK Runtime Environment (build...


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

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

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