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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kiker
1 / 1 / 0
Регистрация: 12.11.2011
Сообщений: 18
#1

провести упорядочивание данных - C++

27.11.2011, 07:10. Просмотров 400. Ответов 4
Метки нет (Все метки)

По данным таблицы, содержащей информацию о работниках предприятия, провести упорядочивание данных по возрастанию или убыванию значения реквизита, указанного в варианте. Вывести на печать исходную таблицу и упорядоченную таблицу.

Упорядочить сведения о женщинах в порядке убывания их возраста.

Исодные данные

№ Фамилия И. О. Пол Год рождения || Год поступления на работу
1. Анисимов Ю. П. М 1940 || 1957
2. Иванов И. Н. М 1950 || 1975
3. Махова О. И. Ж 1960 || 1980
4. Огарев К. М. М 1945 || 1961
5. Егорова П. К. Ж 1955 || 1977
6. Голикова О. И. Ж 1962 || 1980
7. Сотников Т. С. М 1943 || 1960
8. Комов В. И. М 1947 || 1964
9. Лебедев А. А. М 1959 || 1981
10. Димова В. В. Ж 1965 || 1985





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
#include "stdafx.h"
#include <math.h>
#include <string.h>
#include <iostream>
#include <stdio.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale (0,"Rus");
struct rabotniki
 
{int number;
    char fio[20];
    char pol[1];
    int godrozhd;
    int godpost;
    
};
struct rabotniki rab[10];
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;
    
        {double max=1900;
    for (int i=0;i<=n;i++)
    if (rab[i].godrozhd>max)
        max=rab[i].godrozhd;
    
        }
           }
        }
}
}return 0;
}
Добавлено через 44 секунды
посмотрите пожалуйста, правильно или нет???
и подскажите что дальше?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2011, 07:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос провести упорядочивание данных (C++):

Упорядочивание данных в структуре - C++
Привет и заранее спасибо тем, кто поможет! 1 вложение-задание, 2-код, что давал преподаватель, 3-что написал сам. Не могу...

Необходимо провести анализ следующей последовательности данных: - C++
Добрый день уважаемые профи. Необходимо провести анализ следующей последовательности данных: 000004 D3EA9 000005 6620E 004096...

упорядочивание по алфавиту - C++
как элементы структуры типа char упорядочить по алфавиту? О_о

Упорядочивание массивов - C++
Помогите, пожалуйста, решить задачу... Написать программу упорядочивание массивов типа int, float и complex по убыванию. Функции,...

Упорядочивание массивов - C++
Имеется два отсортированных исходных массива целых чисел: первый- по убыванию, а второй- по возрастанию. Составить программу, которая...

Упорядочивание матрицы - C++
Ввести с клавиатуры квадратную матрицу из целых чисел размером M X M (M также вводится с клавиатуры). Ввести число K (1&lt;=K&lt;=M). K-ую по...

4
Сыроежка
Заблокирован
27.11.2011, 07:31 #2
Цитата Сообщение от Kiker Посмотреть сообщение
По данным таблицы, содержащей информацию о работниках предприятия, провести упорядочивание данных по возрастанию или убыванию значения реквизита, указанного в варианте. Вывести на печать исходную таблицу и упорядоченную таблицу.

Упорядочить сведения о женщинах в порядке убывания их возраста.

Исодные данные

№ Фамилия И. О. Пол Год рождения || Год поступления на работу
1. Анисимов Ю. П. М 1940 || 1957
2. Иванов И. Н. М 1950 || 1975
3. Махова О. И. Ж 1960 || 1980
4. Огарев К. М. М 1945 || 1961
5. Егорова П. К. Ж 1955 || 1977
6. Голикова О. И. Ж 1962 || 1980
7. Сотников Т. С. М 1943 || 1960
8. Комов В. И. М 1947 || 1964
9. Лебедев А. А. М 1959 || 1981
10. Димова В. В. Ж 1965 || 1985





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
#include "stdafx.h"
#include <math.h>
#include <string.h>
#include <iostream>
#include <stdio.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale (0,"Rus");
struct rabotniki
 
{int number;
    char fio[20];
    char pol[1];
    int godrozhd;
    int godpost;
    
};
struct rabotniki rab[10];
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;
    
        {double max=1900;
    for (int i=0;i<=n;i++)
    if (rab[i].godrozhd>max)
        max=rab[i].godrozhd;
    
        }
           }
        }
}
}return 0;
}
Добавлено через 44 секунды
посмотрите пожалуйста, правильно или нет???
и подскажите что дальше?
Давайте разбираться, насколько у вас правильно.

Первое. стандартные заголовочные файлы, перешедщие из С в С++, должны указываться без расширения ".h" и иметь префикс "c'". То есть вместо

C++
1
2
3
4
5
#include "stdafx.h"
#include <math.h>
#include <string.h>
#include <iostream>
#include <stdio.h>
Должно быть

C++
1
2
3
4
5
#include "stdafx.h"
#include <cmath>
#include <cstring>
#include <iostream>
#include <cstdio>
Дальше, объявление структуры и определение массива этих структур следует объединить. То естьвместо вашего кода

C++
1
2
3
4
5
6
7
8
9
10
struct rabotniki
 
{int number;
    char fio[20];
    char pol[1];
    int godrozhd;
    int godpost;
    
};
struct rabotniki rab[10];
следует написать

C++
1
2
3
4
5
6
7
8
struct rabotniki
{
   int number;
   char fio[20];
   char pol[1];
   int godrozhd;
   int godpost;
} rab[10];
Далее вы просите ввести число работников, но при этом не проверяете, что могут ввести число, которое превосходит размерность вашего массива, равную 10.

C++
1
2
3
int n;
cout<<"Введите количество работников : ";
cin>>n;
Поэтому этот код некорректен. Либо вы делаете проверку на то, что вам введут число меньшее или равное 10, либо вообще не запрашиваете ввод, а используете массив из 10 элементов априори.

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
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;
Должно быть один блок кода (составной оператор)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
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;
Когда вы это исправите, то можно смотреть ваш код дальше. А пока достаточно в нем уже найдено ошибок.
1
Kiker
1 / 1 / 0
Регистрация: 12.11.2011
Сообщений: 18
27.11.2011, 07:43  [ТС] #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
#include "stdafx.h"
#include <math.h>
#include <cstring>
#include <iostream>
#include <cstdio>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale (0,"Rus");
struct rabotniki
 
{
    int number;
    char fio[20];
    char pol[1];
    int godrozhd;
    int godpost;
    
} rab[10];
for (int n;n=1;n<=10;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;
    
        {double max=1900;
    for (int i=0;i<=n;i++)
    if (rab[i].godrozhd>max)
        max=rab[i].godrozhd;
}
       
}return 0;
}
Добавлено через 23 секунды
так?)
0
Kiker
1 / 1 / 0
Регистрация: 12.11.2011
Сообщений: 18
01.12.2011, 11:52  [ТС] #4
вот что-то написал отсортировал, только как вывести полностью таблицу по году рождения?
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
#include "stdafx.h"
#include <cmath>
#include <cstring>
#include <iostream>
#include <cstdio>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{   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].godrozhd<rab[j+1].godrozhd)    
 
                  {int temp=rab[j].godrozhd;
 
                 rab[j].godrozhd=rab[j+1].godrozhd;
 
                  rab[j+1].godrozhd=temp;
        }
    for(int i=0;i<n;i++)
                cout<<rab[i].godrozhd<<"\t"<<"\n---------------------------------------"<<endl;
    cout<<endl<<endl;
 
           
    return 0;
}
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.12.2011, 11:56 #5
Цитата Сообщение от Сыроежка Посмотреть сообщение
объявление структуры и определение массива этих структур следует объединить.
Могу я поинтересоваться, а в чем, собственно, разница?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2011, 11:56
Привет! Вот еще темы с ответами:

упорядочивание по убыванию.... - C++
Здравствуйте, только начал знакомство с c++, попытался написать программу для упорядочивания 3 чисел в порядке убывания, но что-то не...

Упорядочивание массива - C++
Дан массив размера N. Вывести вначале его элементы с четными1|нечетными2 индексами, а затем — с нечетными1|четными2.

Упорядочивание массива - C++
дан массив вещественных чисел требуется написать функции, которые 1. упорядочивают по убыванию 2.упорядочивают по возрастанию ...

С++ упорядочивание массива - C++
ребят, в чём дело, упорядочиваю массив, а вылезают одинаковые числа, в чём ошибка? #include &lt;iostream&gt; using namespace std; int...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
01.12.2011, 11:56
Ответ Создать тему
Опции темы

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