Составить программу, которая вставляет в список L новый элемент F за каждым вхождением элемента Е. СИ - вопрос №2836198

КОД, КОТОРЫЙ ВСТАВЛЯЕТ ДО НУЖНОГО ЭЛЕМЕНТА, А НАДО ПОСЛЕ

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
#include <time.h>

typedef struct nd
{
int val;
struct nd * next;
} ND;

void printList(ND *ptr)
{
printf("\nСодержимое списка: ");
while (ptr!=NULL)
{
printf("%d ", ptr->val);
ptr=ptr->next;
}
}

int main()
{
srand(time(0));
system(«chcp 1251 > nul»);
ND *beg=NULL, *end=NULL, *p;
p=(ND *) malloc(sizeof(ND));
p->val = rand()%10;
p->next = NULL;
beg = p;
int n, q;
printf(«Введите кол-во чисел в списке: „);
scanf(“%d», &n);
for (int i = 1; i < n; i++)
{
p->next=(ND *) malloc(sizeof(ND));
p=p->next;
p->val = rand()%10;
p->next=end;
}
printList(beg);
p = beg;
ND *temp;
int d, f;
printf("\nЧто вставлять?\n");
scanf("%d", &f);
printf("\nПосле какого вставлять?\n");
scanf("%d", &d);
// if (beg->val==d)
// {
// temp->next=(ND *) malloc(sizeof(ND));
// temp=temp->next;
// temp->val=f;
// temp->next=p;
// }
for (int i = 1; i < n; i++)
{
while (p->next!=end)
{
temp=p;
p=p->next;
if (p->val==d)
{
temp->next=(ND *) malloc(sizeof(ND));
temp=temp->next;
temp->val=-5;
temp->next=p;
}
}
}
printList(beg);
return 0;
}


11.04.18
0 ответов
Ответов пока нет
Посмотреть всех экспертов из раздела Технологии > C/C++
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store