Форум программистов, компьютерный форум CyberForum.ru

Вывести имя владельца и название самого тяжелого багажа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создание объекта в классе http://www.cyberforum.ru/cpp-beginners/thread1837151.html
Имеется некий класс, например class Food. Нужно чтобы в главной функции вызывался объект класса Food, который определен в Food.cpp или в Food.h как это сделано с объектов cin или cout. Расскажите как это сделать?
C++ Расположить в начале массива элементы, отличающиеся от максимального не более, чем на 20% Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более, чем на 20%, а потом – все остальные. Если можно ввод-вывод через printf и scanf, буду очень благодарен! http://www.cyberforum.ru/cpp-beginners/thread1837147.html
Описать структуру с именем ZNAK, содержащую следующие поля C++
Описать структуру с именем ZNAK, содержащую следующие поля: фамилия, имя; знак Зодиака; день рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по датам дней рождения; вывод на экран информации о человеке, чья фамилия введена с клавиатуры; если...
C++ Обработать целочисленную прямоугольную матрицу согласно условию задачи
Дана целочисленная прямоугольная матрица . Написать программу, определяющую величины: количество элементов матрицы, содержащих простые числа; максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы; средние квадратичные значения четных столбцов и нечетных строк матрицы. Средние квадратичные значения четных столбцов и нечетных строк матрицы, упорядочить по...
C++ Обработать массив вещественных чисел согласно заданию http://www.cyberforum.ru/cpp-beginners/thread1837065.html
В одномерном массиве, состоящем из п вещественных элементов, вычислить: количество элементов массива, больших С; произведение элементов массива, расположенных после максимального по модулю элемента. Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные нулю, считать положительными).
C++ Объявление переменной в цикле - зло? Во имя читаемости пришлось объявить и инициализировать ссылки на переменные и сами переменные в теле цикла. Преподаватель против такой практики, но почему - внятно объяснить не может. Находил темы с большим холиваром по этому поводу, но ясной однозначности не нашёл. Читал, что стандарт C99 и сам C++ позволяет объявлять и инициализировать переменные в цикле. Но что это будет значить? ... подробнее

Показать сообщение отдельно
GbaLog-
Не Эксперт C++
1525 / 629 / 176
Регистрация: 24.08.2014
Сообщений: 2,544
Записей в блоге: 1
Завершенные тесты: 2
29.10.2016, 13:18     Вывести имя владельца и название самого тяжелого багажа
Цитата Сообщение от Sultik_Zaka Посмотреть сообщение
не умеет работать с size_t
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/////////////////////////////////////////////////////////////////////////////////////////
// Input:
// 3 [n = кол-во пассажиров, 1 <= n <= 1000]
// Bob [имя]
// 3 [m = кол-во багажей]
// Apple 4 1.5 [1.название багажа, 2. кол-во штук, 3. масса одной единицы]
// Limon 3 0.33
// Cherry 5 0.4
 
// Patrick 
// 2
// Melon 2 8
// Tomato 3 5
 
// Sandy
// 1
// Nuts 1 1
// /*----------------*/
// Output:
// Patrick [Имя владельца самого тяжелого багажа]
// Melon [Название багажа]
// Так вот, в условии требовалось создать такие структуры:
// struct Luggage {
    
    // char *description;
    // int count;
    // double weight;
// };
 
// struct Passenger {
 
    // int luggageSize;
    // char *name;
    // Luggage *luggage;
// };
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
struct Luggage
{
    char *description;
    int count;
    double weight;
};
/////////////////////////////////////////////////////////////////////////////////////////
struct Passenger
{
    unsigned luggageSize;
    char *name;
    Luggage *luggage;
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    unsigned n{};
    
    std::cin >> n;
    
    Passenger* passengers = new Passenger[n];
    double* weight_all = new double[n];
    
    for( unsigned it{}; it < n; ++it )
    {
        passengers[it].name = new char[100];
        std::cin 
            >> passengers[it].name
            >> passengers[it].luggageSize;
        passengers[it].luggage = new Luggage[passengers[it].luggageSize];
        for( unsigned it2{}; it2 < passengers[it].luggageSize; ++it2 )
        {
            passengers[it].luggage[it2].description = new char[100];
            std::cin
                >> passengers[it].luggage[it2].description
                >> passengers[it].luggage[it2].count
                >> passengers[it].luggage[it2].weight;
            if( 
                    weight_all[it]
                  < 
                    passengers[it].luggage[it2].count 
                  * passengers[it].luggage[it2].weight
              )
                weight_all[it] = passengers[it].luggage[it2].count
                               * passengers[it].luggage[it2].weight;
        }
    }
    
    unsigned max_idx{};
    
    for( unsigned it{1}; it < n; ++it )
    {
        if( weight_all[it] > weight_all[max_idx] )
        {
            max_idx = it;
        }
    }
    
    unsigned max_idx_luggage{};
    
    for( unsigned it{1}; it < passengers[max_idx].luggageSize; ++it )
    {
        if( 
                passengers[max_idx].luggage[it].count 
              * passengers[max_idx].luggage[it].weight
              >
                passengers[max_idx].luggage[max_idx_luggage].count
              * passengers[max_idx].luggage[max_idx_luggage].weight 
          )
        {
            max_idx_luggage = it;
        }
    }
    
    std::cout
        << passengers[max_idx].name
        << '\n'
        << passengers[max_idx].luggage[max_idx_luggage].description;
        
    for( unsigned it{}; it < n; ++it )
    {
        for( unsigned it2{}; it2 < passengers[it].luggageSize; ++it2 )
        {
            delete [] passengers[it].luggage[it2].description;
        }
        delete [] passengers[it].luggage;
        delete [] passengers[it].name;
    }
    delete [] passengers;
    delete [] weight_all;
}
 
Текущее время: 17:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru