Форум программистов, компьютерный форум 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++ позволяет объявлять и инициализировать переменные в цикле. Но что это будет значить? ... подробнее

Показать сообщение отдельно
Sultik_Zaka
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 58
29.10.2016, 12:09     Вывести имя владельца и название самого тяжелого багажа
Всем привет!
Стояла задача написать следующую программу:
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 [Название багажа]

Так вот, в условии требовалось создать такие структуры:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct Luggage {
    
    char *description;
    int count;
    double weight;
};
 
struct Passenger {
 
    int luggageSize;
    char *name;
    Luggage *luggage;
};
В указателях я слаб, поэтому сделал такое чудо:
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
#include <iostream>
 
using namespace std;
 
struct Luggage
{
    char description[26];
    int count;
    double weight;
};
struct Passenger
{
 
    int luggageSize;
    char name[1000];
    Luggage luggage[26];
};
 
int main()
{
    Passenger info1[1000];
    int i, j, n, m;
    double wmax[1000], max[1000], max2;
    cin >> n; // количество пассажиров
    if(n >= 1 && n <= 1000)
    {
        for(i=0; i < n; i++)
        {
            cin >> info1[i].name;
            cin >> m; // имя пассажира
            for(j=0; j<m; j++)
            {
                cin >> info1[i].luggage[j].description >> info1[i].luggage[j].count >> info1[i].luggage[j].weight;
                wmax[j] = (info1[i].luggage[j].count)*(info1[i].luggage[j].weight);
                max[i] = wmax[0];
                if(wmax[j] > max[i])
                {
                    max[i] = wmax[j];
                }
            }
        }
        max2 = max[0];
        for(i=0; i < n; i++)
        {
            if(max[i] > max2)
            {
                max2 = max[i];
            }
        }
        for(i = 0; i < n; i++)
        {
            for(j = 0; j < m; j++)
            {
                int xx[1000];
                xx[i] = ((info1[i].luggage[j].count) * (info1[i].luggage[j].weight));
                if(max2 == xx[i])
                {
                    cout << info1[i].name << "\n" << info1[i].luggage[j].description;
                    i = n;
                }
            }
        }
    }
    return 0;
}
Соответственно, теперь задача не принимается контестером ((
Можете помочь?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru