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

Найти максимальный элемент в структуре

15.02.2021, 12:26. Показов 1282. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как мне найти максимальный элемент в zap.value и потом вывести эту структуру с максимальным элементом?
C++
1
2
3
4
5
6
7
8
9
10
 
while ((!f.eof()) && (space < countZinP)) //умова виконання циклу: поки не досягли кінця файлу або кількість виведених записів на екран менше countZinP
    {
        f.read((char*)&zap, sizeof(struct football)); //зчитування запису з файлу у змінну zap
        if (f.eof()) break; // якщо досягнуто кінець файлу то вийти з циклу
        // виводимо поля зчитаного запису на екран
        if (check(zap.value))
            printf("| %2d  |%20s|%10s     |%14s   |%15s  |%4d             |%10d     | \n", ((1 + space) + ((position)*countZinP)), zap.PIB, zap.date_of_birth, zap.country, zap.football_club, zap.first_year, zap.value);
        space++; //збільшуємо лічильник кількості записів на екрані на 1
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2021, 12:26
Ответы с готовыми решениями:

Найти максимальный элемент в каждой строке массива и номер столбца, в котором этот максимальный элемент находится
Найти максимальный элемент в каждой строке массива и номер столбца, в котором этот максимальный...

Для той из матриц, в которой больше максимальный элемент, найти максимальный элемент в каждой строке
Даны две матрицы разного размера. Для той из матриц, в которой больше максимальный элемент, найти...

Массив: Найти максимальный элемент каждой строки и максимальный элемент каждого столбца.
Задан массив случайных действительных чисел Array(N,N). Найти максимальный элемент каждой строки и...

Найти максимальный элемент массива x(15), поменять местами этот максимальный элемент с индексом 4
поможете с курсовым ?

5
Модератор
Эксперт CЭксперт С++
5201 / 2918 / 1509
Регистрация: 14.12.2018
Сообщений: 5,260
Записей в блоге: 1
15.02.2021, 12:52 2
Покажите все кода для рассматривания !
0
0 / 0 / 0
Регистрация: 17.11.2020
Сообщений: 169
15.02.2021, 13:10  [ТС] 3
Volga_,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
вот структура 
#include <iostream>
#include <fstream>
#include <conio.h>
#include <windows.h>
using namespace std;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); /* Отримання
дескриптора пристрою стандартного виводу, а саме консолі*/
//задаємо константи, що визначають довжину символьних полів: назва товару, виробник, країна
const int l_pib = 20, l_сountry = 14, l_football_club = 15,l_date_of_birth=11;
const int countZinP = 12; // оголошуємо константу, що регламентує кількість записів на екрані
//основна структура
struct football
{
    char PIB[l_pib]; // поле для збереження ПІБ
    char date_of_birth[l_date_of_birth]; // поле для збереження дати народження
    char country[l_сountry];//поле для збереження країни народження
    char football_club[l_football_club];//поле для збереження футбольного клубу
    short int  first_year;//поле для збереження року початку гри в футбольному клубі
    long int value;//поле для збереження вартості гравця
};
вот функция в которой надо найти самого дорого футболіста
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
void expensive()
{
    system("cls");
start:
    football zap;
    int space; // оголошуємо змінну, що є лічильником кількості записів на екрані
    int position = 0; // враховує к-сть виведених записів на сторінці
    int im = 0; // змінна для збереження коду натиснутої клавіші
    f.clear(); // очищуємо прапорці помилок
    f.seekp(position * countZinP * sizeof(struct football), ios::beg); // переміщуємо вказівник на потрібний запис, що вираховується за наступною формулою
    position* countZinP * sizeof(struct football);
    cout << "._____.____________________._______________._________________._________________._________________._______________.\n";
    cout << "|  №  |  ПІБ        |Дата народження|Країна народження|Футбольний  клуб |Рік початку гри в|Вартість гравця|\n";
    cout << "|     |                    |               |                 |                 |футбольному клубі|у долларах     |\n";
    cout << "|=====|====================|===============|=================|=================|=================|===============|\n";
    space = 0;
    while ((!f.eof()) && (space < countZinP)) //умова виконання циклу: поки не досягли кінця файлу або кількість виведених записів на екран менше countZinP
    {
        f.read((char*)&zap, sizeof(struct football)); //зчитування запису з файлу у змінну zap
        if (f.eof()) break; // якщо досягнуто кінець файлу то вийти з циклу
        // виводимо поля зчитаного запису на екран
        if (check(zap.value))
            printf("| %2d  |%20s|%10s     |%14s   |%15s  |%4d             |%10d     | \n", ((1 + space) + ((position)*countZinP)), zap.PIB, zap.date_of_birth, zap.country, zap.football_club, zap.first_year, zap.value);
        space++; //збільшуємо лічильник кількості записів на екрані на 1
    }
    cout << "|_____|____________________|_______________|_________________|_________________|_________________|_______________|\n";
    cout << "\n Натисніть: \n\n Enter для того щоб зробить перевірку заново. \n\n Esc для того щоб повернутися в головне меню. \n\n\n";
control:
    int go = _getch(); //зчитуємо натиснуту клавішу
    if (go == 13) // перевірка чи не натиснута клавіша Enter
    {
        goto start;
    }
    if (go == 27) // перевірка чи натиснута клавіша Esc
    {
        goto ex;
    }
    else
    {
        goto control;
    }
ex:
    system("pause");
}
вот функция которая работает которая выводит футболистов которые играют больше 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
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
void club_less()
{
    system("cls");
start:
    cout << "Ведіть футбольний клубу : ";
    char check_club[15];
    cin >> check_club;
    football zap;
    int space; // оголошуємо змінну, що є лічильником кількості записів на екрані
    int position = 0; // враховує к-сть виведених записів на сторінці
    int im = 0; // змінна для збереження коду натиснутої клавіші
    f.clear(); // очищуємо прапорці помилок
 
    f.seekp(position * countZinP * sizeof(struct football), ios::beg); // переміщуємо вказівник на потрібний запис, що вираховується за наступною формулою
    position* countZinP * sizeof(struct football);
 
    cout << "._____.____________________._______________._________________._________________._________________._______________.\n";
    cout << "|  №  |  ПІБ        |Дата народження|Країна народження|Футбольний  клуб |Рік початку гри в|Вартість гравця|\n";
    cout << "|     |                    |               |                 |                 |футбольному клубі|у долларах     |\n";
    cout << "|=====|====================|===============|=================|=================|=================|===============|\n";
    space = 0;
    while ((!f.eof()) && (space < countZinP)) //умова виконання циклу: поки не досягли кінця файлу або кількість виведених записів на екран менше countZinP
    {
        f.read((char*)&zap, sizeof(struct football)); //зчитування запису з файлу у змінну zap
        if (f.eof()) break; // якщо досягнуто кінець файлу то вийти з циклу
        // виводимо поля зчитаного запису на екран
        if (2021-zap.first_year>3 and equality(check_club, zap.football_club))
            printf("| %2d  |%20s|%10s     |%14s   |%15s  |%4d             |%10d     | \n", ((1 + space) + ((position)*countZinP)), zap.PIB, zap.date_of_birth, zap.country, zap.football_club, zap.first_year, zap.value);
        space++; //збільшуємо лічильник кількості записів на екрані на 1
    }
    cout << "|_____|____________________|_______________|_________________|_________________|_________________|_______________|\n";
    cout << "\n Натисніть: \n\n Enter для того щоб зробить перевірку заново. \n\n Esc для того щоб повернутися в головне меню. \n\n\n";
control:
    int go = _getch(); //зчитуємо натиснуту клавішу
    if (go == 13) // перевірка чи не натиснута клавіша Enter
    {
        goto start;
    }
    if (go == 27) // перевірка чи натиснута клавіша Esc
    {
        goto ex;
    }
    else
    {
        goto control;
    }
ex:
    system("pause");
}
bool equality(char *a, char *b)
{
    int i = 0, j = strlen(a);
        while (j > i)
        {
            if (a[i] == b[i])
                return true;
            i++;
        }
        return false;
}
0
Модератор
Эксперт CЭксперт С++
5201 / 2918 / 1509
Регистрация: 14.12.2018
Сообщений: 5,260
Записей в блоге: 1
15.02.2021, 14:18 4
Попробуйте!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
......
 
    long int valueMax = -1000000;
    football zapvalueMax;
    while ((!f.eof()) && (space < countZinP)) //умова виконання циклу: поки не досягли кінця файлу або кількість виведених записів на екран менше countZinP
    {
        f.read((char*)&zap, sizeof(struct football)); //зчитування запису з файлу у змінну zap
 
        if (valueMax <= zap.value)
        {
            valueMax = zap.value;
            strcpy(zapvalueMax.PIB, zap.PIB);
            strcpy(zapvalueMax.date_of_birth, zap.date_of_birth);
            strcpy(zapvalueMax.country, zap.country);
            strcpy(zapvalueMax.football_club, zap.football_club);
            zapvalueMax.first_year = zap.first_year;
            zapvalueMax.value = zap.value;
        }
            
        .......
где: valueMax будет максимальной zap.value, а zapvalueMax именно будет структурой с максимальным элементом.

Добавлено через 5 минут
Или короче:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    ......
 
    long int valueMax = -1000000;
    football zapvalueMax;
    while ((!f.eof()) && (space < countZinP)) //умова виконання циклу: поки не досягли кінця файлу або кількість виведених записів на екран менше countZinP
    {
        f.read((char*)&zap, sizeof(struct football)); //зчитування запису з файлу у змінну zap
 
        if (valueMax <= zap.value)
        {
            valueMax = zap.value;
            memcpy(&zapvalueMax, &zap, sizeof(zap));
        }
            
        .......
0
0 / 0 / 0
Регистрация: 17.11.2020
Сообщений: 169
15.02.2021, 14:46  [ТС] 5
Volga_, оно ничего не выводит(

Добавлено через 3 минуты
Volga_, мне надо чтобы именно каждого футбольного клуба был самый дорогой
0
0 / 0 / 0
Регистрация: 17.11.2020
Сообщений: 169
16.02.2021, 13:26  [ТС] 6
никто не знает?(
0
16.02.2021, 13:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2021, 13:26
Помогаю со студенческими работами здесь

Найти максимальный элемент (из 10 чисел) и следующий за ним максимальный элемент
Добрый день. Задача такая: используя только while и if-else найти максимальный эл-нт (из 10 чисел)...

В каждой строке матрицы найти максимальный элемент, в каждом столбце найти минимальный элемент, и поменять их местами
пожалуйста помогите плз!!! дан массив А. В каждой строке найти максимальный элемент, в каждом...

Диномически найти минимальный элемент в структуре
Написал программу, она определяет самый дешевый бензин из 3 заправок в структуре, проблема с...

Найти минимальный элемент в каждой строке и из ний найти максимальный элемент
надо найти минимальный элемент в каждой строке и из ний найти максимальный элемент вот мой код ...

Найти максимальный элемент и удалить строку и столбец матрицы, на пересечении которых находится максимальный элемент
Сформировать матрицу 5*5 случайных целых чисел в диапазоне от -20 до 60. Напечатать матрицу. Найти...

В квадратной матрице 6х6 найти максимальный элемент, который лежит на побочной диагонали и максимальный элемент в каждой строке матрицы
В квадратной матрице 6х6 найти максимальный элемент, который лежит на побочной диагонали и...


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

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