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

Вывести список работников, у которых больше 2х детей

05.11.2018, 22:06. Показов 855. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу код, до этого момента кода все работает,
C++
1
2
3
4
5
6
7
8
9
10
11
cout<<"Працівники що мають більше двох дітей:"<<endl;
     for(int i = 0; i < N; i++){
     
        
            if(arr[i].worker2.children > 2){
            cout<<"Працівник "<<arr[i].worker1.FIO<<" має"<<arr[i].worker2.children<<"дітей";
            }else{
            
            cout<<"Таких працівників немає"<<endl;
            }
        }
а потом лезет ошибка в консоль terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc.
На форуме толком ничего не нашел. Буду очень благодарен за исправленные ошибки, вот код:

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
#include <iostream>
#include <iomanip>
#include "math.h"
#include <Windows.h>
using namespace std;
 
struct WORKER1{
    char FIO[20];
    char posada[20];
    int god;
    char nazva[20];
    
};
struct WORKER2{
    int sklad;
    int children;
};
struct WORKER{
    struct WORKER1 worker1;
    struct WORKER2 worker2;
};
int main(){
        SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int N;
    
    WORKER *arr = new WORKER[N];
    
    cout<<"Enter Number of structures:";
    cin>>N;
    cout<<endl;
    for(int i=0; i<N;i++){
    cout<<"Прізвище та ініціали працівника: ";
    cin>>arr[i].worker1.FIO;
    cout<<endl<<"Посада:  ";
    cin>>arr[i].worker1.posada;
    cout<<endl<<"Рік прийому на роботу: ";
    cin>>arr[i].worker1.god;
    cout<<endl<<"Назва компанії: ";
    cin>>arr[i].worker1.nazva;
    cout<<endl<<"Склад сімї: ";
    cin>>arr[i].worker2.sklad;
    cout<<endl<<"Кількість дітей: ";
    cin>>arr[i].worker2.children;
    }
 
WORKER temp;
for(int i = 0; i < N; i++)
        for(int j = i+1; j < N; j++)
        {
           if(strcmp(arr[i].worker1.FIO, arr[j].worker1.FIO) > 0)
          {
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
          }
        }
        cout<<endl<<"Сортування"<<endl;
for(int i=0;i<N;i++){
    
    cout<<arr[i].worker1.FIO<<endl;
}
int num_min = 0;
        for(int i = 0; i < N; i++)
        {
            if(arr[i].worker1.god > num_min)
                num_min = arr[i].worker1.god;
                }
    cout<<"Останній рік: "<<num_min<<endl;
    
    cout<<"Працівники що мають більше двох дітей:"<<endl;
     for(int i = 0; i < N; i++){
     
        
            if(arr[i].worker2.children > 2){
            cout<<"Працівник "<<arr[i].worker1.FIO<<" має"<<arr[i].worker2.children<<"дітей";
            }else{
            
            cout<<"Таких працівників немає"<<endl;
            }
        }
    
    delete[] arr;
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2018, 22:06
Ответы с готовыми решениями:

Выбрать работников, у которых средняя зарплата за 2 года больше средней зарплаты всех работников
Ввести сведения о работниках предприятия (фамилию, год пос¬тупления на работу, среднюю зарплату...

не могу вывести имена 2 их работников у которых заработок больше всех. элементы сравнивать надо?
#include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; struct Sotrudniki { char...

Вывести список работников, стаж работы которых превышает заданное число лет
Работник: ФИО, должность, стаж, Зарплата. Вывести: а) список работников, стаж работы которых...

Структура Worker, вывести список работников,стаж работы которых превышает заданное число лет
Помогите ,написать программу,пожалуйста! worker: Фамилия и инициалы,должность,год поступления на...

2
75 / 59 / 31
Регистрация: 20.03.2017
Сообщений: 351
06.11.2018, 10:17 2
ARSIPUPS, перенеси
C++
1
WORKER *arr = new WORKER[N];
за
C++
1
2
cout<<"Enter Number of structures:";
cin>>N;
У тебя N ещё ничем не инициализирована, а ты уже выделяешь массив.
1
0 / 0 / 0
Регистрация: 05.11.2018
Сообщений: 2
06.11.2018, 10:50  [ТС] 3
Спасибо большое
0
06.11.2018, 10:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2018, 10:50
Помогаю со студенческими работами здесь

Вывести список городов, в которых количество пользователей больше трех
Не понимаю, почему ошибка? Invalid use of group function Я знаю, что ругается на WHERE...

Как вывести список прав доступа для каталогов, размер которых больше 10 Мб
А подскажите пожалуйста как вывести список прав доступа для каталогов, размер которых больше 10 Мб?

Вывести список товаров хранящихся больше месяца стоимость которых превышает заданную
Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц товара,...

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

Определить количество работников, у которых стаж работы больше, чем ввел пользователь.
здрасте. Мне нужна помощь надо написать программу в Си ,Запись файла. Задание: Создать программу...

Вывести список предприятий, у которых объём поставок больше объёма потребления на 0,5 млн.руб
Даны массивы: PR1, ... , PR5 - наименования предприятий; PS1, ... , PS5 - объёмы поставок в руб....


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

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