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

Вывести данные о багаже пассажиров, упорядочить их по весу вещей, а в случае равенства - по количеству вещей

18.11.2015, 17:51. Показов 4363. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите в чем проблема! При запуске программы вылетает

Вывести данные о багаже пассажиров, упорядочить их по весу вещей, а в случае равенства - по количеству вещей.

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
#include <iostream>
using namespace std;
struct bag
{
    int num;
    char sur[20];
    int qua;
    float wei;
};
int main()
{
    setlocale(LC_ALL, "rus");
    int const n = 5;
    bag *pas[n], *temp;
    for (int i = 0; i < n; i++)
    {
        cout << "Введите номер " << i + 1 << " пассажира:" << endl;
        cout << pas[i]->num;
        cout << "Введите фамилию " << i + 1 << " пассажира:" << endl;
        cin >> pas[i]->sur;
        cout << "Введите количество вещей " << i + 1 << " пассажира:" << endl;
        cin >> pas[i]->qua;
        cout << "Введите вес вещей " << i + 1 << " пассажира:" << endl;
        cin >> pas[i]->wei;
    }
    for (int i = 0; i < n-1; ++i)
    {
        for (int k = i + 1; k < n; ++k)
        {
            if (pas[i]->wei > pas[k]->wei)
            {
                temp = pas[i];
                pas[i] = pas[k];
                pas[k] = temp;
            }
            else if (pas[i]->wei = pas[k]->wei)
            {
                if (pas[i]->qua > pas[k]->qua)
                {
                    temp = pas[i];
                    pas[i] = pas[k];
                    pas[k] = temp;
                }
            }
        }
    }
    cout << "Отсортированная информация:" << endl;
    for (int i = 0; i < n; i++)
    {
        cout << pas[i]->num << endl;
        cout << pas[i]->sur << endl;
        cout << pas[i]->qua << endl;
        cout << pas[i]->wei << endl;
    }
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2015, 17:51
Ответы с готовыми решениями:

Количество вещей в багаже пассажиров превышает среднее число вещей всех пассажиров
Известна информация о багаже пассажиров (фамилия, количество вещей и общий вес багажа). Найти количество пассажиров и их фамилии,...

Записи. Имеется ли пассажир, багаж которого превышает багаж остальных пассажиров по количеству вещей и по весу
помогите сделать задачи на паскале: 1)Задача по записям: Багаж пассажира хар-ся кол-вом вещей и весом вещей. Пусть дан массив,...

Записи. Найдите число пассажиров, имеющих менее трех вещей,и число пассажиров, количество вещей которых превосходит среднее число вещей
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Выработать Random количество вещей (1..5) на одного пассажира и...

6
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 133
20.11.2015, 14:42  [ТС]
ПОМОГИТЕ ПОЖАЛУЙСТА!!!

Немного исправила, но все равно выводит не то что нужно

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
#include <iostream>
using namespace std;
struct bag
{
    int num;
    char sur[20];
    int qua;
    float wei;
};
int main()
{
    setlocale(LC_ALL, "rus");
    int const n = 4;
    bag pas[n], temp;
    for (int i = 0; i < n; i++)
    {
        cout << "Ââåäèòå íîìåð " << i + 1 << " ïàññàæèðà:" << endl;
        cin >> pas[i].num;
        cout << "Ââåäèòå ôàìèëèþ " << i + 1 << " ïàññàæèðà:" << endl;
        cin >> pas[i].sur;
        cout << "Ââåäèòå êîëè÷åñòâî âåùåé " << i + 1 << " ïàññàæèðà:" << endl;
        cin >> pas[i].qua;
        cout << "Ââåäèòå âåñ âåùåé " << i + 1 << " ïàññàæèðà:" << endl;
        cin >> pas[i].wei;
    }
    for (int i = 0; i < n-1; i++)
    {
        if (pas[i].wei < pas[i+1].wei)
        {
            temp = pas[i];
            pas[i] = pas[i+1];
            pas[i+1] = temp;
        }
        else if (pas[i].wei = pas[i+1].wei && pas[i].qua < pas[i+1].qua)
        {
            temp = pas[i];
            pas[i] = pas[i+1];
            pas[i+1] = temp;
        }
        else continue;
    }
    cout << "Îòñîðòèðîâàííàÿ èíôîðìàöèÿ:" << endl;
    for (int i = 0; i < n; i++)
    {
        cout << pas[i].num << endl;
        cout << pas[i].sur << endl;
        cout << pas[i].qua << endl;
        cout << pas[i].wei << endl;
    }
    system("pause");
    return 0;
}
Добавлено через 2 часа 11 минут
ОЧЕНЬ СРОЧНО! ПОМОГИТЕ!
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
20.11.2015, 14:45
еще один цикл в сортировке потеряли
0
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 133
20.11.2015, 14:54  [ТС]
Dimension, какой?
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
20.11.2015, 15:23
Лучший ответ Сообщение было отмечено Nastya15684 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for(int j=0;j<n-1;j++)
  for (int i = 0; i < n-1-j; i++)
    {
        if (pas[i].wei < pas[i+1].wei)
        {
            temp = pas[i];
            pas[i] = pas[i+1];
            pas[i+1] = temp;
        }
        else if (pas[i].wei = pas[i+1].wei && pas[i].qua < pas[i+1].qua)
        {
            temp = pas[i];
            pas[i] = pas[i+1];
            pas[i+1] = temp;
        }
        else continue;
    }
1
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 133
21.11.2015, 11:07  [ТС]
Dimension, исправила
не правильно сортирует и почему-то вес меняет на нули
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
#include <iostream>
using namespace std;
struct bag
{
    int num;
    char sur[20];
    int qua;
    float wei;
};
int main()
{
    setlocale(LC_ALL, "rus");
    int const n = 4;
    bag pas[n], temp;
    for (int i = 0; i < n; i++)
    {
        cout << "Введите номер " << i + 1 << " пассажира:" << endl;
        cin >> pas[i].num;
        cout << "Введите фамилию " << i + 1 << " пассажира:" << endl;
        cin >> pas[i].sur;
        cout << "Введите количество вещей " << i + 1 << " пассажира:" << endl;
        cin >> pas[i].qua;
        cout << "Введите вес вещей " << i + 1 << " пассажира:" << endl;
        cin >> pas[i].wei;
    }
    for(int j = 0; j < n-1; j++)
    {
        for (int i = 0; i < n-1; i++)
        {
            if (pas[i].wei < pas[i+1].wei)
            {
                temp = pas[i];
                pas[i] = pas[i+1];
                pas[i+1] = temp;
            }
            else if (pas[i].wei = pas[i+1].wei && pas[i].qua < pas[i+1].qua)
            {
                temp = pas[i];
                pas[i] = pas[i+1];
                pas[i+1] = temp;
            }
            else continue;
        }
    }
    cout << "Отсортированная информация:" << endl;
    for (int i = 0; i < n; i++)
    {
        cout << pas[i].num << endl;
        cout << pas[i].sur << endl;
        cout << pas[i].qua << endl;
        cout << pas[i].wei << endl;
    }
    system("pause");
    return 0;
}
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
21.11.2015, 11:57
опять цикл не правильный ,еще раз смотрите на мое сообщение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2015, 11:57
Помогаю со студенческими работами здесь

Найти число пассажиров, имеющих более двух вещей и число пассажиров, количество вещей которых превосходит среднее число вещей
Тема: Записи. Работа с текстовыми файлами. Дан файл f, содержащий сведения о багаже нескольких пассажиров. Багаж пассажира...

Найти число пассажиров, имеющий более двух вещей, и число пасcажиров , количество вещей которых происходит среднее число вещей
В условии предыдущей задачи найти число пассажиров имеющий более двух вещей и число пассажиров количество вещей которых превосходит число...

Число пассажиров, имеющих более 2-х вещей и число тех, у кого количество вещей превосходит среднее число вещей
Помогите пожалуйста, находила эту задачу в интернете, но мне нужно сделать так, чтобы программа брала данный из типизированного файла и...

Найти число пассажиров, у которых количество вещей превосходит среднее число вещей для всех пассажиров
Извентна информация о багаже (кол-во вещей и общий вес багажа) 24 пассажиров. Найти число пассажиров у которых кол-во вещей превосходит...

Структура: Найти число пассажиров, у которых количество вещей превосходит среднее число вещей всех пассажиров.
Program Perviu; type baggade = record kolvesh:integer; ves:real; end; var a:array of baggade; i:integer; pas:integer;


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru