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

Определить разницу между минимальной и максимальной зарплатой

22.03.2020, 18:31. Показов 915. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вызвано необработанное исключение: нарушение доступа для записи.Подскажите в чем проблема
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
#include <iostream>
using namespace std;
class Salary {
public:
    int* Salary1;
    int* Salary2;
    int* Salary3;
    int* max;
    int* min;
 
    Salary(int a, int s, int d);
    ~Salary();
    void run();
 
 
};
Salary::Salary(int a, int s, int d) {
    Salary1 = new int(a);
    Salary2 = new int(s);
    Salary3 = new int(d);
}
 
void Salary::run() {
    if (*Salary1 >= *Salary2) {
        *max = *Salary1;
    }
    else { *max = *Salary2; }   <--- На этой строке эта ошибка
    if (*Salary3 >= *max) {
        *Salary3 = *max;
    }
 
 
 
 
    if (*Salary1 <= *Salary2) {
        *min = *Salary1;
    }
    else {*min = *Salary2;
}
    if (*Salary3 <= *min) {
        *Salary3 = *min;
    }
 
 
    cout << "Разница между максимальной и минимальной - " << *max - *min << endl;
}
Salary::~Salary() {
    delete(Salary1, Salary2, Salary3);
}
 
 
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    Salary a(100, 500, 1000);
    a.run();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2020, 18:31
Ответы с готовыми решениями:

Определить сотрудников с максимальной и минимальной зарплатой
Известны данные про 20 сотрудников фирмы (Фамилия, зарплата, пол). Определить: - Фамилию...

Найти разницу между наименьшей и наибольшей зарплатой
(Задача на файлы). Составить программу решения, используя функции. Сама задача: Задан зарплаты...

Определить количество слов в строке между словами максимальной и минимальной длины
Ввести с клавиатуры строку. Определить количество слов в строке между словами максимальной и...

Найти разницу между максимальной и минимальной цифрами числа 509
Помогите пожалуйста найти разницу между максимальной и минимальной цифрами числа 509, заранее...

4
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
22.03.2020, 19:05 2
Цитата Сообщение от FaceProgrammist Посмотреть сообщение
else { *max = *Salary2; } <--- На этой строке эта ошибка
У тебя min и max не проинициализированы.
А что ты вообще пытаешься сделать?
0
Модератор
Эксперт С++
13503 / 10755 / 6409
Регистрация: 18.12.2011
Сообщений: 28,704
22.03.2020, 19:34 3
FaceProgrammist, Вы совсем не прониклись принципами ООП.
1. Класс описывает данные об ОДНОМ объекте. Пусть этот объект - это работник и его годовая зарплата.
2. Инкапсуляция данных подразумевает использование защищенных от доступа из вне данных (private).
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
#include <iostream>
#include <cstring>
using namespace std;
class Salary {
private:
    char name[100];
    int Salary12[12]; // Зарплата за 12 месяцев
public:
    Salary(const char* nm,int a[12]);
    //~Salary();
    void run();
};
Salary::Salary(const char* nm, int a[12]) {
    strcpy_s(name,100, nm);
    for(int i=0;i<12;i++)
        Salary12[i] = a[i];
}
 
void Salary::run() {
    int imin = Salary12[0];
    int imax = imin;
    for (int i = 1; i < 12; i++)
    {
        if (Salary12[i] > imax)
            imax = Salary12[i];
        if (Salary12[i] < imin)
            imin = Salary12[i];
    }
    cout <<name<< " Разница между максимальной и минимальной = " << imax - imin << endl;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int a[12] = { 1000,2000,1954,1500,0,1500,1000,2000,1954,1500,0,1500 };
    Salary S1("Иванов И.И.",a);
    S1.run();
    for (int i = 0; i < 12; i++)
        a[i] = rand() % 50000 + 10000;
    Salary S2("Петров П.П.", a);
    S2.run();
    for (int i = 0; i < 12; i++)
    {
        cout << "Введите зарплату за " << i + 1 << " месяц:";
        cin >> a[i];
    }
    Salary S3("Сидоров С.С.", a);
    S3.run();
    return 0;
}
p.s. Если требуется найти разницу в зарплате нескольких работников, то нужно написать дружественную функцию, которой передается массив переменных типа Salary. В ней перебираете данные этого массива и определяете нужные характеристики.
0
1 / 1 / 0
Регистрация: 22.03.2020
Сообщений: 131
22.03.2020, 20:09  [ТС] 4
oleg-m1973,мне нужно в конструктор вводить 3 зарплаты и чтобы в итоге выводилось макимальная - минимальная
0
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
22.03.2020, 20:21 5
Цитата Сообщение от FaceProgrammist Посмотреть сообщение
oleg-m1973,мне нужно в конструктор вводить 3 зарплаты и чтобы в итоге выводилось макимальная - минимальная
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
class Salary
{
public:
    int Salary1;
    int Salary2;
    int Salary3;
    int m_max;
    int m_min;
 
    Salary(int a, int s, int d)
    : Salary1(a)
    , Salary2(s)
    , Salary3(d)
    , m_min(std::min(a, std::min(s, d)))
    , m_max(std::max(a, std::max(s, d)))
    {
    }
 
    void run()
    {
        std::cout << "min: " << m_min << std::endl;
        std::cout << "max: " << m_max << std::endl;
    }
 
};
0
22.03.2020, 20:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2020, 20:21
Помогаю со студенческими работами здесь

В файле определить разность между максимальной и минимальной суммой кредита
Помогите с заданием В файле определить разность между максимальной и минимальной суммой кредита...

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

Структура: Определить работника с максимальной зарплатой и напечатать все сведения о нём.
Список работников завода: фамилия, год рождения, должность,зарплата, образование. Определить...

Разность между максимальной и минимальной температурой в цикле
Здравствуйте!) Не могли бы вы помочь с решением этой задачи! Желательно со всеми формулами, т.к....


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

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