Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
trollondinner

Формирование списка и работа с ним

27.09.2012, 15:47. Показов 900. Ответов 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
44
45
46
47
48
49
50
51
52
53
#include <iostream>
using namespace std;
struct node { int info; 
struct node *next;
}; 
// [ЭТО]
int countOfE(node *list, int E) {
node *iter = list;
int count = 0;
while (iter != NULL) {
if (iter->info == E)
count++;
iter = iter->next;
// [/ЭТО]
}
return count;
}
void main()
{
typedef node *NodePtr; // указатель на тип node
NodePtr head = NULL;
NodePtr p;// указатель на текущий элемент
NodePtr tail;// указатель на "хвост" очереди
int N = 10; // количество элементов в очереди
int cnt = 1;// счетчик элементов в очереди
 
// [ЭТО]
if (head == NULL)
{ head = new node;
head->info = rand()%100 - 50;
head->next = NULL;
tail = head;
}
for (int i = 2; i<=N; i++)
{ p = new node;
p->info = rand()%100 - 50;
tail->next = p;
p->next = NULL;
tail = p;
}
// Вывод очереди на экран
p = head;
for (int i = 1; i<=N; i++)
{ cout << p->info << ' ';
p = p->next;
// [/ЭТО]
}
cout <<endl;
int E;
cin >> E;
cout << "Kol vo chisel ravnoe vvedennomy " << countOfE(head, E) << endl;
return;
}
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2012, 15:47
Ответы с готовыми решениями:

Переделать формирование рваного массива в двумерный и работа с ним
1) Создать двумерный массив типа char a. При помощи СВЧ b. Элементы вводятся с клавиатуры 2) Распечатать массив 3) Выполнить:...

Работа с элементами ComboBox в DataGridView: формирование списка в зависимости от условия
Приветствую. Снова нужна ваша профессиональная помощь. Дата грид. Допустим есть 2 столбца. Один текстовый, второй - комбобокс. Итак....

После каждого элемента списка добавьте ту часть списка, которая была перед ним
Пусть дан список. После каждого элемента списка добавьте ту часть списка, которая была перед ним.

1
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.09.2012, 01:30
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// функция, которая возвращает количество элементов в очереди со значением info равным E
 int countOfE(node *list, int E) // в функцию передаётся указатель на начало очереди и значение E
 {
 node *iter = list; // указатель на начало очереди
 int count = 0; // счётчик
 while (iter != NULL) // перебор элементов очереди
 {
    if (iter->info == E) // если найден элемент со значением info равным E, то увеличиваем счётчик
        count++;
    iter = iter->next; // переход к следующему элементу
 }
 return count; // возвращаем количество найденных элементов
 }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// создание очереди
if (head == NULL) // если очередь пустая
 { 
    head = new node; // первый элемент становится в голове очереди
    head->info = rand()%100 - 50; // присваиваем значение первому элементу
    head->next = NULL; // первый элемент указывает на NULL (значит он последний)
    tail = head; // хвост и голова очереди пока совпадают
 }
 for (int i = 2; i<=N; i++) // добавляем N - 1 элемент в очередь
 { 
    p = new node; // новый элемент 
    p->info = rand()%100 - 50; // присваиваем значение новому элементу
    tail->next = p; // предыдущий элемент будет указывать на новый элемент
    p->next = NULL; // новый элемент будет указывать на NULL (значит он последний)
    tail = p; // новый элемент в хвост очереди
 }
 // Вывод очереди на экран
 p = head; // p указывает на начало очереди
 for (int i = 1; i<=N; i++) // перебор N элементов очереди 
 { 
    cout << p->info << ' '; // вывод значения info элемента очереди
    p = p->next; // p указывет на следующий элемент очереди
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.09.2012, 01:30
Помогаю со студенческими работами здесь

Формирование списка с остатками от деления целых чисел из исходного списка на заданное число N
люди помогите пожалуйста!!! Формирование списка с остатками от деления целых чисел из исходного списка на заданное число N.

Формирование списка, состоящего из списка самого низшего уровня
Написать программу формирования списка, состоящего из списков самого низшего уровня для заданного списка.

Формирование случайного массива и действия над ним
Сформировать случайным образом массив из 20 элементов. Найти максимальный и минимальный элементы массива, поменять их местами и вычислить...

Дублирование вхождения каждого элемента списка One и формирование из этих значений списка Double (пояснить условие)
Здравствуйте. Вот собственно само задание: В составе программы описать функцию, которая дублирует вхождение каждого элемента списка One и...

Формирование списка из N первых элементов исходного списка
Предикат proc выводит первые N элементов исходного списка. Как его переделать, чтобы он не выводил, а формировал новый список в переменной...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru