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

Сортировка массива структур

02.05.2010, 16:28. Показов 1529. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <string.h>
#include <fstream>
#include <tchar.h>
//---------------------------------------------------------------------------
 
#pragma argsused
struct emp
{
    char name[15];
    int dohod;
    int rash;
    int raznost;
};
 
int main()
{
//setlocale(LC_ALL,"Russian");
 ofstream out("d://file.txt");
 struct emp employee[20];
 int i,n,g,min;
 printf("Kol-vo elementov: ");
 scanf("%d", &n);
 for(i=0;i<n;i++)
    {
    printf("Familiya: ");
    scanf("%s",employee[i].name);
    printf("Vvedite dohod: ");
    scanf("%d", &employee[i].dohod);
    printf("Vvedite rashod: ");
    scanf("%d", &employee[i].rash);
    employee[i].raznost=employee[i].dohod-employee[i].rash; // разность
    }
   out << employee[i].name;out << "\n";
    out << employee[i].dohod;out << "\n";
    out << employee[i].rash;out << "\n\n";
    out << employee[i].raznost;
    out.close();
return 0;
}
Имеется такая програмка. Она записывает значения фамилии, дохода и расхода в файл. Имеется так же разность которая считается путем вычитания расхода из дохода. Значения разности нужно сортировать в порядке возрастания. Не пойму как сделать....
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.05.2010, 16:28
Ответы с готовыми решениями:

Сортировка массива структур через сортировку массива указателей
Ошибка возникает в функции void sort(student **ppStud, int k, char ch). Кто видит ошибку - помогите, пожалуйста. Код программы: ...

Сортировка массива структур
Всем привет. Есть структура.Часть задания я сделал , файл создан , сведения о пациентах вводятся с клавиатуры , корректировка записей...

Сортировка массива структур
Разработать программу, реализующую сортировку массива структур (50 элементов). В качестве элемента массива выбрать структуру,...

5
 Аватар для SashaPinsk
39 / 37 / 13
Регистрация: 27.12.2009
Сообщений: 73
02.05.2010, 18:31
C++
1
2
3
4
5
6
7
8
9
int j, buffer, dp;
for(dp=n/2; dp>0; dp/=2)
    for(i=dp; i<n; i++)
        for(j=i-dp; j>=0 && employee[j].raznost>employee[j+dp].raznost; j-=dp)
        {
            buffer=employee[j+dp].raznost;
            employee[j+dp].raznost=employee[j].raznost;
            employee[j].raznost=buffer;
        }
Нужно вставить эту сортировку после 37 строки в код
1
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 27
02.05.2010, 19:27  [ТС]
Цитата Сообщение от SashaPinsk Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
int j, buffer, dp;
for(dp=n/2; dp>0; dp/=2)
    for(i=dp; i<n; i++)
        for(j=i-dp; j>=0 && employee[j].raznost>employee[j+dp].raznost; j-=dp)
        {
            buffer=employee[j+dp].raznost;
            employee[j+dp].raznost=employee[j].raznost;
            employee[j].raznost=buffer;
        }
Нужно вставить эту сортировку после 37 строки в код
Спасибо!
Код мнемного исправлен там была не правильно операторная скобка. А тут куда? О_о
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <string.h>
#include <fstream>
#include <tchar.h>
//---------------------------------------------------------------------------
 
#pragma argsused
struct emp
{
    char name[15];
    int dohod;
    int rash;
    int raznost;
};
int main()
{
//setlocale(LC_ALL,"Russian");
 ofstream out("d://file.txt");
 emp employee[20];
 int i,n,g;
 printf("Kol-vo elementov: ");
 scanf("%d", &n);
 for(i=0;i<n;i++)
    {
    printf("Familiya: ");
    scanf("%s",employee[i].name);
    printf("Vvedite dohod: ");
    scanf("%d", &employee[i].dohod);
    printf("Vvedite rashod: ");
    scanf("%d", &employee[i].rash);
    employee[i].raznost=employee[i].dohod-employee[i].rash; // разность
    out << employee[i].name;out << "\n";
    out << employee[i].dohod;out << "\n";
    out << employee[i].rash;out << "\n\n";
  //    out << employee[i].raznost;
    }
    out.close();
}
//---------------------------------------------------------------------------
Добавлено через 38 минут
с этим разобрался. но он перемещает только разность а мне нужно чтобы всю структуру
0
 Аватар для SashaPinsk
39 / 37 / 13
Регистрация: 27.12.2009
Сообщений: 73
03.05.2010, 00:36
А чтобы структуры сортировала надо так:
C++
1
2
3
4
5
6
7
8
9
10
int j, dp;
emp buffer;
for(dp=n/2; dp>0; dp/=2)
        for(i=dp; i<n; i++)
                for(j=i-dp; j>=0 && employee[j].raznost>employee[j+dp].raznost; j-=dp)
                {
                        buffer=employee[j+dp];
                        employee[j+dp].raznost=employee[j];
                        employee[j]=buffer;
                }
1
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 27
04.05.2010, 05:39  [ТС]
Цитата Сообщение от SashaPinsk Посмотреть сообщение
А чтобы структуры сортировала надо так:
C++
1
2
3
4
5
6
7
8
9
10
int j, dp;
emp buffer;
for(dp=n/2; dp>0; dp/=2)
        for(i=dp; i<n; i++)
                for(j=i-dp; j>=0 && employee[j].raznost>employee[j+dp].raznost; j-=dp)
                {
                        buffer=employee[j+dp];
                        employee[j+dp].raznost=employee[j];
                        employee[j]=buffer;
                }
[BCC32 Error] emp.cpp(50): E2034 Cannot convert 'emp' to 'int'
на строке employee[j+dp].raznost=employee[j];
0
 Аватар для SashaPinsk
39 / 37 / 13
Регистрация: 27.12.2009
Сообщений: 73
04.05.2010, 18:35
опечатка
надо конечно employee[j+dp]=employee[j];
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.05.2010, 18:35
Помогаю со студенческими работами здесь

Сортировка массива структур
Имеется структура : struct Data_base { string team_name; string city; int scored_goals; int missed_goals;...

Сортировка массива структур...
Здравствуйте! Не могли бы вы выложить примеры или кинуть ссылочку на интересную статью по сортировке массива структур. Имеется массив...

Сортировка массива структур
Есть файл с текстом(this is spartaaaaaa!), нужно посчитать количество повторений каждого символа, вывести все это в консоль, затем...

Сортировка массива структур
Дана структура WORKER и массив из 10 стркутур. Нужно 1)сортировать список 2) вывести на экран рабочих чей стаж больше числа введённого с...

Сортировка массива структур
Дана структура с именем MARSH, состоящая из полей: • название начального пункта назначения; • название конечного пункта назначения;...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru