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

Что делает эта функция?

28.02.2021, 13:21. Показов 1887. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно построить код с функцией list *F95, приведенной ниже. Я добавила ее в этот код, чтобы узнать что она делает, но при компиляции она бесконечно выводит какие-то цифры. Кто-нибудь может объяснить, что делает эта функция и каким образом реализовать ее в коде?
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
struct list
{
    int val;
    list *next,*prev;
};
list *head = NULL;
 
void AddList(int value, int n)
{
    n--;
    list *node = new(list);
    node->val = value;
    node->prev = NULL;
    node->next = NULL;
    if(head==NULL) head=node;
    else
    {
        list *p = head;
        if(n==0)
        {
            node->next=head;
            node->prev=node;
            head=node;
        }
        else
        {
            for(int i=1; i<n && p->next!=NULL; i++) p=p->next;
            if(p->next!=NULL) p->next->prev=node;
            node->next=p->next;
            p->next=node;
            node->prev=p;
            p=node;
        }
    }
}
 
void PrintList()
{
    if(head==NULL) cout << "Spisok pust\n";
    else
    {
        list *a=head;
        cout << "Spisok: ";
        do
        {
            cout << a->val << " ";
            a=a->next;
        } while(a!=NULL);
        cout << endl;
    }
}
 
list *F95(list *qh, int n)
{
    list *z, *pr, *y;
    for(y=qh, pr=NULL; n!=0 && y!=NULL; n--, pr=y, y=y->next)
    {
        if(y==NULL) return qh;
        if(pr==NULL) { z=qh; qh=qh->next; }
        else { z=y; pr->next=y->next; }
    }
    delete z;
    return qh;
}
 
int main()
{
    srand(time(0));
    int i, z, n;
    cout << "Chislo elementov: ";
    cin >> n;
    for(i=1; i<=n; i++)
    {
        z=rand()%31;
        AddList(z,i);
    }
    list *p = NULL;
    p = F95(p, 1);
    PrintList();
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2021, 13:21
Ответы с готовыми решениями:

Что делает эта функция?
Что делает эта функция? int vich_cods(const void *a, const void *b){ // return *(char*)a - *(char*)b; }

Что делает эта функция?
Здравствуйте! У меня есть следующая функция, однако не совсем понимаю, что она делает. Кто-то может помочь? //n - любое натуральное...

Что делает эта функция?
func(x) { if (x == 0) { return 0 } return func(x / 10) + x % 10 }

12
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.02.2021, 13:36
Цитата Сообщение от Zhans Посмотреть сообщение
Кто-нибудь может объяснить, что делает эта функция и каким образом реализовать ее в коде?
Выглядит она так, что её не нужно реализовывать в коде. Нужно её выкинуть из кода и нормально реализовать то, что от тебя требуют по заданию.
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 6
28.02.2021, 13:39  [ТС]
По заданию нужно написать программу с этой функцией
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13202 / 6837 / 1822
Регистрация: 18.10.2014
Сообщений: 17,296
28.02.2021, 13:41
Цитата Сообщение от Zhans Посмотреть сообщение
но при компиляции она бесконечно выводит какие-то цифры.
Вы что-то выдумываете. Эта функция у вас в коде вообще ничего не делает, а сразу пытается завершиться и падает по delete на неинициализированную переменную. Ничего она не выводит.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.02.2021, 13:43
Цитата Сообщение от Zhans Посмотреть сообщение
По заданию нужно написать программу с этой функцией
Это не функция, это какой-то нерабочий кусок говна. У тебя задание именно насчёт этого куска, или что-то более конкретное?
Похоже в ней кто-то пытается удалять элементы списка
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 6
28.02.2021, 13:45  [ТС]
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Вы что-то выдумываете. Эта функция у вас в коде вообще ничего не делает, а сразу пытается завершиться и падает по delete на неинициализированную переменную. Ничего она не выводит.
В 1 варианте я компилирую без нее, а во 2 с ней и вот что выходит
Миниатюры
Что делает эта функция?   Что делает эта функция?  
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 6
28.02.2021, 13:50  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Это не функция, это какой-то нерабочий кусок говна. У тебя задание именно насчёт этого куска, или что-то более конкретное?
Похоже в ней кто-то пытается удалять элементы списка
Дана функция Fxx (), которая обрабатывает структуру списка. Функция рассматривает список следующей структуры.
struct list
{ int val;
list *next,*prev;
};
Задание:
1. Необходимо определить тип списка, предусмотренной в функции.
2. Найдите алгоритм функции Fxx.
3. Вы должны написать программу, использующую эту функцию.

P.S. Извините за кривой перевод, задание на казахском
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 6
28.02.2021, 13:52  [ТС]
Может я неправильно переписала код, вот скрин
Миниатюры
Что делает эта функция?  
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.02.2021, 13:58
Цитата Сообщение от Zhans Посмотреть сообщение
Дана функция Fxx (), которая обрабатывает структуру списка. Функция рассматривает список следующей структуры.
И что, тебе выдали эту F95?
Цитата Сообщение от Zhans Посмотреть сообщение
1. Необходимо определить тип списка, предусмотренной в функции.
Односвязный список
Цитата Сообщение от Zhans Посмотреть сообщение
2. Найдите алгоритм функции Fxx.
Падать, если будет передан непустой список
Цитата Сообщение от Zhans Посмотреть сообщение
3. Вы должны написать программу, использующую эту функцию.
Здесь ты вроде сделал правильно
Цитата Сообщение от Zhans Посмотреть сообщение
list *p = NULL;
    p = F95(p, 0);
Добавлено через 2 минуты
А проблема у тебя, скорее всего, в AddList. Выглядит тоже довольно корявой
1
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 6
28.02.2021, 14:04  [ТС]
А проблема у тебя, скорее всего, в AddList. Выглядит тоже довольно корявой
Как мне построить рабочую программу?
0
Модератор
Эксперт С++
 Аватар для zss
13780 / 10973 / 6491
Регистрация: 18.12.2011
Сообщений: 29,259
28.02.2021, 14:04
Лучший ответ Сообщение было отмечено Zhans как решение

Решение

Ваш код не рабочий.
Первая ошибка
Цитата Сообщение от Zhans Посмотреть сообщение
p = F95(p, 1);
В функцию надо передать не p а head
Вторая
Цитата Сообщение от Zhans Посмотреть сообщение
PrintList();
a) Печатается не список p, а список head
b) список head заполнен каким-то мусором и неправильно заканчивается.
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.02.2021, 14:08
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Здесь ты вроде сделал правильно
Ошибся, наверное, надо вот так
C++
1
2
3
4
list *p = new list{};
p->next = p->prev = nullptr;
 
    p = F95(p, 1);
Добавлено через 3 минуты
Цитата Сообщение от Zhans Посмотреть сообщение
Как мне построить рабочую программу?
C++
1
2
3
4
5
6
7
8
9
10
11
void AddList(int value, int n)
{
    list *node = new list();
    node->val = value;
    node->prev = NULL;
    node->next = head;
    if (head)
        head->prev = node
 
    head = node;
}
1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13202 / 6837 / 1822
Регистрация: 18.10.2014
Сообщений: 17,296
28.02.2021, 14:14
Цитата Сообщение от Zhans Посмотреть сообщение
В 1 варианте я компилирую без нее, а во 2 с ней и вот что выходит
Я не знаю, о каких вариантах вы говорите и что такое "компилирую без нее" (как это?), но вы привели в своем вопросе код. Этот код никаких чисел из функции F95 не выводит и выводить никак не может.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.02.2021, 14:14
Помогаю со студенческими работами здесь

что делает эта функция?
она создаёт массив списков? void create_massiv_of_lists(node** x,int l) { int i,n; for (i=0;i&lt;l;i++) { ...

Что делает эта рекурсивная функция?
Добрый день. Можете подсказать, что делает эта функция? Явно связана с двоичной системой, но не могу понять, что именно. int f(int n){...

что делает эта программа?
здравствуйте! подскажите пожалуйста что делает данная программа...я так думаю он должен выводить 1,2 3,4 ? #include...

что делает эта программа на С++?
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; void main() { char g; int j,i; printf(&quot;vvesti frazu\n&quot;); j=0; ...

Что делает эта строка?
for(int ij= 0; ij&lt; m; ij++)


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru