Форум программистов, компьютерный форум CyberForum.ru

Упорядочить данные - C++

Восстановить пароль Регистрация
 
миклух
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 13
22.12.2011, 09:47     Упорядочить данные #1
здравствуйте! есть следующая задача: Упорядочить данные в порядке убывания значений рабочего стажа.

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
#include <string.h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
 
int main()
{   int tmp;
        setlocale (0,"Rus");
        struct rabotniki
        {
                char fio[20];
                int number;
                char pol[1];
                int godrozhd;
                int godpost;
        }rab[9];
        
    int n;
cout<<"Ââåäèòå êîëè÷åñòâî Г°Г*áîòГ*èêîâ : ";
cin>>n;
for (int i=0;i<n;i++)
{
   cout<<"Ââåäèòå ÔÈÎ " <<i+1<< " Г°Г*áî÷åãî : ";
   cin>>rab[i].fio;
    
   cout<<"Ââåäèòå ïîë: ";
        cin>>rab[i].pol;
        
   cout<<"Ãîä ðîæäåГ*ГЁГї : ";
           cin>>rab[i].godrozhd;
    
  cout<<"Ãîä ïîñòóïëåГ*ГЁГї Г*Г* Г°Г*áîòó : ";
        cin>>rab[i].godpost;
                                                
}
 
        for(int i=0;i<n;i++)         
 
         for(int j=0;j<n-1;j++)
         
         
 
                  if(rab[j].godpost<rab[j+1].godpost)    
 
                  {
                                                         int temp=rab[j].godpost; int temp1=rab[j].godrozhd; char* temp2=rab[j].pol; char* temp3=rab[j].fio;
 
                                                         rab[j].godpost=rab[j+1].godpost; rab[j].godrozhd=rab[j+1].godrozhd; strcpy(rab[j].pol, rab[j+1].pol); strcpy(rab[j].fio, rab[j+1].fio);
 
                                                         rab[j+1].godpost=temp; rab[j+1].godrozhd=temp1; strcpy(rab[j+1].pol, temp2); strcpy(rab[j+1].fio, temp3);
        
        }
    for(int i=0;i<n;i++)
                cout<<rab[i].fio<<" "<<rab[i].pol<<rab[i].godrozhd<<" "<<rab[i].godpost<<"\t"<<"\n---------------------------------------"<<endl;
        cout<<endl<<endl;
 
        getch();           
        return 0;
}
и вобщем числа сортируются, а символы нехотят. что сделать? помогите!

Добавлено через 10 часов 52 минуты
немного переделал, теперь сортирует, но теперь к полу оно почемуто дописывает фио..


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
#include <string.h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
 
int main()
{   int tmp;
        setlocale (0,"Rus");
        struct rabotniki
        {
                char fio[20];
                int number;
                char pol[1];
                int godrozhd;
                int godpost;
        }rab[9];
        
    int n;
    
cout<<"Ââåäèòå êîëè÷åñòâî Г°Г*áîòГ*èêîâ : ";
cin>>n;
for (int i=0;i<n;i++)
{
   cout<<"Ââåäèòå ÔÈÎ " <<i+1<< " Г°Г*áî÷åãî : ";
   cin>>rab[i].fio;
    
   cout<<"Ââåäèòå ïîë: ";
        cin>>rab[i].pol;
        
   cout<<"Ãîä ðîæäåГ*ГЁГї : ";
           cin>>rab[i].godrozhd;
    
  cout<<"Ãîä ïîñòóïëåГ*ГЁГї Г*Г* Г°Г*áîòó : ";
        cin>>rab[i].godpost;
                                                
}
 
        for(int i=0;i<n;i++)         
 
         for(int j=0;j<n-1;j++)
         
         
 
                  if(rab[j].godpost<rab[j+1].godpost)    
 
                  {
                                                         char fio2[20], pol2[1];
                                                         
                                                         int temp=rab[j].godpost;           int temp1=rab[j].godrozhd;              strcpy(pol2, rab[j].pol);           strcpy(fio2, rab[j].fio);
 
                                                         rab[j].godpost=rab[j+1].godpost;   rab[j].godrozhd=rab[j+1].godrozhd;      strcpy(rab[j].pol, rab[j+1].pol);   strcpy(rab[j].fio, rab[j+1].fio);
 
                                                         rab[j+1].godpost=temp;             rab[j+1].godrozhd=temp1;                strcpy(rab[j+1].pol, pol2);         strcpy(rab[j+1].fio, fio2);
        
        }
    for(int i=0;i<n;i++)
                cout<<rab[i].fio<<" "<<rab[i].pol<<" "<<rab[i].godrozhd<<" "<<rab[i].godpost<<"\t"<<"\n---------------------------------------"<<endl;
        cout<<endl<<endl;
 
        getch();           
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2011, 09:47     Упорядочить данные
Посмотрите здесь:

Язык С, выбрать и упорядочить данные C++
C++ как упорядочить данные в txt
Данные 6 комплексных чисел упорядочить по возростанию модулей C++
работа с файлами упорядочить данные C++
C++ 23. Упорядочить данные в порядке убывания значений рабочего стажа. (C++)
Коды воздействуют на данные - структурное программирование, Данные управляют кодом - ООП C++
Считать данные о ноутбуках с .txt, обрабатывать их и записывать в .bin файл отсортированные данные C++
Структуры: ввести данные о работниках и вывести их данные, отсортированные по алфавиту C++

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

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

Текущее время: 16:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru