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

Однонаправленные списки: найти номер позиции максимального значения списка

08.04.2016, 20:05. Показов 2114. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Организовать ввод в однонаправленный список. Узел списка состоит из двух полей: целое число и указатель. Необходимо найти номер позиции максисмального значания из списка
Абсолютно не могу понять как это сделать.
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
#include "iostream"
 
using namespace std;
 
struct Item
{
    int data;
    Item *next;
};
 
void Add(Item *&);
void Print(Item *);
int FindMax(Item *);
 
void main()
{
    Item *head = nullptr;
    Add(head);
    Print(head);
    cout << "Max element: " << FindMax(head) << endl;
    system("pause");
}
 
void Add(Item *&object)
{
    int n;
    cout << "Enter quantity: ";
    cin >> n;
    for (auto i = 0; i < n; i++)
    {
        Item *node = new Item;
        cout << "Enter value: ";
        cin >> node->data;
        node->next = object;
        object = node;
    }
}
 
void Print(Item *object)
{
    Item *node = object;
    while (node)
    {
        cout << node->data << " ";
        node = node->next;
    }
    cout << endl;
}
 
int FindMax(Item *object)
{
    Item *node = object->next;
    int max = object->data;
    while (node)
    {
        if (node->data > max) max = node->data;
        node = node->next;
    }
    return max;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2016, 20:05
Ответы с готовыми решениями:

Найти номер позиции максимального значения из односвязного списка
10. Организовать ввод в однонаправленный список. Узел списка состоит из двух полей: целое число и...

Однонаправленные списки.Написать подпрограмму,которая добавляет в конец списка А1 элементы списка А2 со значением больше за 3
Однонаправленные списки. Дано: 2-а списка .А1-первое поле-отрицательное число .А2-первое...

Однонаправленные списки. сколько чисел из первого списка содержится во втором
Задание: создать два однонаправленных списка, состоящих из целых чисел. Посчитать сколько чисел из...

Как найти номер максимального элемента списка?
Программа ищет максимум в списке, и по идее должна как-то запоминать номер максимального элемента....

5
68 / 68 / 37
Регистрация: 26.10.2013
Сообщений: 198
09.04.2016, 00:27 2
centurion1334,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int FindMaxPos(Item *object)
{
    int pos = 0; 
    int count = 0;
    Item *node = object->next;
    int max = object->data;
    while (node)
    {
        count++;
        if (node->data > max) {
           max = node->data;
           pos = count;
        }
        node = node->next;
    }
    return pos;
}
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 9
09.04.2016, 12:36  [ТС] 3
Ругается на nullptr, а так же на эту строчку
C++
1
for (auto i = 0; ;i < n; i++)
i does not name a type

Добавлено через 1 час 20 минут
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
#include "iostream"
#include <cstdlib>
 
 
using namespace std;
 
struct Item
{
    int data;
    Item *next;
};
 
void Add(Item *&);
void Print(Item *);
int FindMaxPos(Item *);
 
int main(void)
{
    Item *head = nullptr;
    Add(head);
    Print(head);
    cout << "Max element: " << FindMaxPos(head) << endl;
    system("pause");
}
 
void Add(Item *&object)
{
    int n;
    cout << "Enter quantity: ";
    cin >> n;
    for (auto i = 0; i < n; i++)
    {
        Item *node = new Item;
        cout << "Enter value: ";
        cin >> node->data;
        node->next = object;
        object = node;
    }
}
 
void Print(Item *object)
{
    Item *node = object;
    while (node)
    {
        cout << node->data << " ";
        node = node->next;
    }
    cout << endl;
}
 
int FindMaxPos(Item *object)
{
    int pos = 0; 
    int count = 0;
    Item *node = object->next;
    int max = object->data;
    while (node)
    {
        count++;
        if (node->data > max) {
           max = node->data;
           pos = count;
        }
        node = node->next;
    }
    return pos;
}
Код работает на онлайн компиляторах, но мне нужно чтобы он мог работать и через консоль.
Все еще ругается на nullptr. Скорее всего в найтроках компилятора (dev c++) стоит старый стандарт. Как это исправить?
0
68 / 68 / 37
Регистрация: 26.10.2013
Сообщений: 198
09.04.2016, 16:04 4
centurion1334, а если вместо nullptr оставить простой NULL?
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 9
09.04.2016, 18:09  [ТС] 5
Теперь компилятор вообще крашится
0
68 / 68 / 37
Регистрация: 26.10.2013
Сообщений: 198
09.04.2016, 19:25 6
Цитата Сообщение от centurion1334 Посмотреть сообщение
Теперь компилятор вообще крашится
В смысле программа при выполнении выкидывает или при компиляции ошибка?
Попробуйте выяснить на каком этапе происходит вылет.

Цитата Сообщение от centurion1334 Посмотреть сообщение
void Add(Item *&object)
Для чего здесь &? Может стоит убрать.
0
09.04.2016, 19:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2016, 19:25
Помогаю со студенческими работами здесь

Найти номер первого максимального значения
Дан целочисленный вектор A(n). Найти номер первого максимального значения среди отрицательных...

Найти номер первого максимального или минимального элемента списка
Помогите решить задачу, завтра сдавать уже. На вход функции подается многоуровневый список чисел....

Найти номер первого максимального значения среди элементов
Задан целочисленный одномерный массив A из N элементов. Найти номер первого максимального значения...

Найти номер последнего максимального значения среди нечетных (по значению) элементов
Немогу никак сделать:wall::wall:(((( Help Please Задан целочисленный одномерный массив a из n...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru