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

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

02.05.2010, 16:28. Просмотров 1185. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2010, 16:28
Ответы с готовыми решениями:

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

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

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

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

5
39 / 37 / 13
Регистрация: 27.12.2009
Сообщений: 73
02.05.2010, 18:31 2
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  [ТС] 3
Цитата Сообщение от 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
39 / 37 / 13
Регистрация: 27.12.2009
Сообщений: 73
03.05.2010, 00:36 4
А чтобы структуры сортировала надо так:
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  [ТС] 5
Цитата Сообщение от 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
39 / 37 / 13
Регистрация: 27.12.2009
Сообщений: 73
04.05.2010, 18:35 6
опечатка
надо конечно employee[j+dp]=employee[j];
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2010, 18:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

Сортировка массива структур
Дана структура WORKER и массив из 10 стркутур. Нужно 1)сортировать список 2) вывести на экран...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.