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

Известны данные о 16 сотрудников фирмы: фамилия, возраст и отношение к военной службе

29.05.2017, 18:34. Показов 4996. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача:
Известны данные о 16 сотрудников фирмы: фамилия, возраст и отношение
к военной службе (военнообязанный или нет). определить: а)
фамилия самого младшего по возрасту человека среди
военнообязанных (считать, что такой есть и он единственный) б)
фамилии самых старших по возрасту людей среди
военнообязанных и среди невоеннообязанных (считать, что
такие есть и они едины в своей группе).

Есть решение:
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 <string>
#include <vector>
 
using namespace std;
 
class Person {
    public:
        string name, surname;
        unsigned int age;
        bool reservist;
        
    Person(string _n, string _s, unsigned int _a, bool _r):
        name(_n), surname(_s), age(_a), reservist(_r) {}
};
 
int main() {
    setlocale (0, "rus");
    vector<Person> persons;
    persons.push_back(Person("Иван", "Алексеев", 20, true));
    persons.push_back(Person("Василий", "Сидоров", 18, true));
    persons.push_back(Person("Алексей", "Петров", 22, true));
    persons.push_back(Person("Александр", "Рябой", 19, true));
    persons.push_back(Person("Андрей", "Бочкарьов", 21, false));
    persons.push_back(Person("Владимир", "Иванов", 19, false));
    persons.push_back(Person("Юрий", "Филицев", 23, false));
    persons.push_back(Person("Павел", "Рамиров", 25, false));
    persons.push_back(Person("Евгений", "Уманцев", 16, false));
    
     for(int i=0;i<8;++i){
     cout<<persons.at(i)<<endl;
    cout<<endl;
    }
     
    cout << endl;
    unsigned int min_age = 100;
    int min_index = -1;
    for (unsigned int i = 0; i < persons.size(); i++)
        if ((persons[i].age <= min_age) && (persons[i].reservist)) {
            min_age = persons[i].age;
            min_index = i;
        }
 
    cout << "фамилия самого младшего по возрасту среди военнообязанных - " << persons[min_index].surname << endl;
 
    unsigned int max_age = 0;
    int max_index = -1;
    for (unsigned int i = 0; i < persons.size(); i++)
        if ((persons[i].age >= max_age) && (persons[i].reservist)) {
            max_age = persons[i].age;
            max_index = i;
        }
    
    cout << "фамилия самого старшего по возрасту среди военнообязанных - " << persons[max_index].surname << endl;
    
    max_age = 0;
    max_index = -1;
    for (unsigned int i = 0; i < persons.size(); i++)
        if ((persons[i].age >= max_age) && (!persons[i].reservist)) {
            max_age = persons[i].age;
            max_index = i;
        }
    
    cout << "фамилия самого старшего по возрасту среди невоеннообязанных - " << persons[max_index].surname << endl;
    
    system("pause");
    return 0;
}
Как мне вывести на экран содержимое вектора?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.05.2017, 18:34
Ответы с готовыми решениями:

Известны данные о n сотрудниках фирмы: фамилия, возраст и отношение к воинской службе (военнообязанный или нет)
Известны данные о n сотрудниках фирмы: фамилия, возраст и отношение к воинской службе (военнообязанный или нет). Определить: а)...

Известны данные о n сотрудниках фирмы (фамилия, зарплата и пол)
Известны данные о n сотрудниках фирмы (фамилия, зарплата и пол). Определить: а) фамилию мужчины, имеющего самую большую зарплату б)...

Известны данные о 20 сотрудниках фирмы (фамилия, зарплата и пол). Определить фамилию мужчины, имеющего самую большую зарплату
Известны данные о 20 сотрудниках фирмы (фамилия, зарплата и пол). Определить фамилию мужчины, имеющего самую большую зарплату (считать, что...

2
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
29.05.2017, 20:32
PaulDark, здравствуйте! Написал свой вариант данной программы с использованием структуры. Надеюсь, она сохранила нужную вам функциональность.

Пример входных данных:

Станислав Симонов 16 false
Яков Пахомов 26 true
Максим Юдин 25 false
Фёдор Кириллов 27 true
Павел Королёв 31 false
Анатолий Дмитриев 30 true
Павел Романов 28 true
Семён Крюков 29 true
Борис Ильин 24 true
Павел Александров 19 true
Максим Терентьев 21 true
Николай Зиновьев 22 false
Семён Куликов 18 false
Роман Беспалов 23 true
Валерий Никонов 20 false
Леонид Коновалов 17 true


Код программы:

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
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h> //Шрифт консоли - Lucida Console
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    ifstream fin("input.txt");
    //ofstream fout("output.txt");
    const int N = 16; //Количество записей
    struct Person
    {
        string name;
        string surname;
        int age;
        bool reservist;
    } A[N];
    int min, max1, max2, x, x1, x2;
    int k = 0;
    while (fin >> A[k].name >> A[k].surname >> A[k].age >> boolalpha >> A[k].reservist)
    {
        k++;
    }
    min = 100;
    max1 = max2 = 0;
    for (int i = 0; i < k; i++)
    {
        if ((A[i].age < min) && (A[i].reservist))
        {
            min = A[i].age;
            x = i;
        }
        if ((A[i].age > max1) && (A[i].reservist))
        {
            max1 = A[i].age;
            x1 = i;
        }
        if ((A[i].age > max2) && (!A[i].reservist))
        {
            max2 = A[i].age;
            x2 = i;
        }
    }
    cout.setf(ios::boolalpha);
    cout << "а):" << endl;
    cout << A[x].name << " " << A[x].surname << " " << A[x].age << " " << A[x].reservist << endl;
    cout << "б):" << endl;
    cout << A[x1].name << " " << A[x1].surname << " " << A[x1].age << " " << A[x1].reservist << endl;
    cout << A[x2].name << " " << A[x2].surname << " " << A[x2].age << " " << A[x2].reservist << endl;
    fin.close();
    //fout.close();
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 11
30.05.2017, 10:30  [ТС]
Fixer_84, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2017, 10:30
Помогаю со студенческими работами здесь

Дан список сотрудников: фамилия, возраст, должность, оклад. Оставить в списке только тех, кто не достиг возраста 60 лет.
Пожалуйста помогите решить задачи в паскаль вот одна из них. Дан список сотрудников: фамилия, возраст, должность, оклад. Оставить в...

Известны данные о 20 сотрудниках фирмы
Известны данные о 20 сотрудниках фирмы (фамилия, зарплата и пол). Определить фамилию мужчины, имеющего самую большую зарплату (считать, что...

Известны данные о 30-ти учениках: фамилия, класс и оценка по информатике. Определить фамилию учеников 9-х классов, имеющих оценку «5»
помогите доработать программу в Делфи....я впринципе её сделал, но мне нужно через записи ее сделать, а как сделать - я не знаю...помогите...

Известны данные о 5 спортсменах по стрельбе:фамилия,сколько очков выбил.Вывести на экран данные о тех спортсменах,которые выбили более 45 очков.
Помогите решить задачу

Помочь директору фирмы развезти сотрудников фирмы по домам на такси
После затянувшегося совещания директор фирмы решил заказать такси, чтобы развезти сотрудников по домам. Он заказал N машин - ровно столько,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru