Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2023, 18:33   #1
Михаил 125
Пользователь
 
Регистрация: 09.10.2022
Сообщений: 12
По умолчанию Добавление элемента в список на языке си

Здравствуйте, имеется файл с данными, в программе организован вывод данных в алфавитном списке и обратном алфавитном списке. Вопрос-как можно вклинить в список какое-то дополнительное значение. Например, я хочу дополнить свой список именем "пантера 2" как я могу это сделать, не изменяя исходный файл с данными?
void alfalist(struct z* tank)//алфавитный список
{
int i,x=3;
struct sp* nt,*z;
x = 3;
Console::ForegroundColor = ConsoleColor::Red;
Console::BackgroundColor = ConsoleColor::White;
Console::Clear();
if (!spisok)//проверка существования списка
printf("\n Алфавитный список танков");
printf("\n =================================== ==============================\n");
for (i = 0; i < NC; i++)
vstavka(tank, tank[i].name);//применяем функцию вставка для заполнения алфавитного списка
for (nt = spisok; nt != 0; nt = nt->sled)
{
Console::CursorLeft = 0;
Console::CursorTop = x + 1;
printf(" %-20s %ld", nt->name, nt->pace);
x += 1;
}
x = 3;
Console::CursorLeft = 40;
Console::CursorTop = 1;
printf("Обратный алфавитный список");
for (nt = spisok; nt != 0; z = nt, nt = nt->sled);
for (nt = z, i = 0; nt != 0; i++, nt = nt->pred)
{
Console::CursorLeft = 40;
Console::CursorTop = x + 1;
printf(" %-20s %ld", nt->name, nt->pace);
x += 1;
}
getch();
}
void vstavka(struct z* tank, char* name)
{
int i;
struct sp* nov, * nt, * z = 0;
for (nt = spisok; nt != 0 && strcmp(nt->name, name) < 0; z = nt, nt = nt->sled);
if (nt && strcmp(nt->name, name) == 0) return;
nov = (struct sp*)malloc(sizeof(struct sp));
strcpy(nov->name, name);
nov->sled = nt;
nov->pred = z;
nov->pace = 0;
for (i = 0; i < NC; i++)
if (strcmp(tank[i].name, name) == 0)
nov->pace += tank[i].pace;
if (!z) spisok = nov;
if (z) z->sled = nov;
if (nt) nt->pred = nov;
return;
}
Михаил 125 вне форума Ответить с цитированием
Старый 03.06.2023, 21:11   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

После загрузки списка вызвать vstavka с нужными параметрами.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двусвязный список, вставка элемента в заданную позицию, и удаление элемента из заданной позиции - C++ Stok7 Помощь студентам 2 10.12.2016 19:52
Добавление элемента в массив. Prin53 Общие вопросы по Java, Java SE, Kotlin 1 21.12.2012 01:56
Односвязный список, добавление элемента Buserandi Общие вопросы C/C++ 13 27.07.2012 22:29
Добавление элемента в кольцевой список ForzaJuve Общие вопросы C/C++ 1 09.11.2010 19:39
Двухсвязный список, добавление элемента в указанную позицию redmonkey Помощь студентам 3 19.10.2010 12:29