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

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

27.09.2012, 15:47. Показов 886. Ответов 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
5499 / 4894 / 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru