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

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

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

Сортировка студентов по дате рождения - C++

17.04.2016, 13:06. Просмотров 448. Ответов 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
 
int main()
{   
setlocale (LC_ALL, "Russian");
struct students
{
    char init[25];
    int tjyl, ojyl, fiz, jmat, inf;
    float sred;
};
 
 struct students  grup[4];
 int i,n,k=0,j,p;
 
 cout <<"Стундент саны:"<<"\t";
 cin >>n;
 cout << "----------------------------------------------------------------------" << endl;
 
 for (i=0;i<n;i++)
{ 
 
 cout <<"\n"<< i+1 <<".Студенттин малиметтерин енгизиниз:"<<endl;
 cout << "----------------------------------------------------------------------" << endl;
    cout << "\n1. Инициалы:\t";
    cin >>grup[i].init;
    cout << "\n2. Туган жылы: \t";
    cin >>grup[i].tjyl;
    cout << "\n3. Окуга тускен жылы: \t";
    cin >> grup[i].ojyl;
    cout << "\n4. 1 семестрдеги физикадан алган багасы: \t";
    cin >> grup[i].fiz;
    cout << "\n5. 1 семестрдеги жогаргы математикадан алган багасы: \t";
    cin >> grup[i].jmat;
    cout << "\n6. 1 семестрдеги информатикадан алган багасы: \t";
    cin >> grup[i].inf;
} 
 
 cout << "\n----------------------------------------------------------------------" << endl;
 
for (int i=0; i<n; i++)
{
    
 cout << i+1 <<". Студенттин малимети:"<<"\n";
 
 cout << "----------------------------------------------------------------------" << endl;
 
    cout << "\n1. Инициалы:\t" << grup[i].init ;
    cout << "\n2. Туган жылы:\t" << grup[i].tjyl ;
    cout << "\n3. Окуга тускен жылы:\t" << grup[i].ojyl;
    cout << "\n4. 1 семестрдеги физикадан алган багасы:\t" << grup[i].fiz;
    cout << "\n5. 1 семестрдеги жогаргы математикадан алган багасы:\t" << grup[i].jmat;
    cout << "\n6. 1 семестрдеги информатикадан алган багасы:\t" << grup[i].inf << "\n\n";
    cout << "----------------------------------------------------------------------" << endl;
}
    cout << "\t Туган жылы бойынша реттелген студенттердин тизими: " << endl;
    cout << "----------------------------------------------------------------------" << endl;
    
    cout << endl;
 
 
for(int i=n-1; i>=0; i--)
    {
        for (int j=0; j<i; j++)
        {
            if (grup[i].tjyl > grup[i+1].tjyl)
                {       
                    p=grup[i].tjyl;
                    grup[i].tjyl=grup[i+1].tjyl;
                    grup[i+1].tjyl=p;   
                }
        }
        cout<< grup[i].tjyl << " - жылы  " << grup[i].init << " стундент туылды" << endl;   
    } 
    
    
 
 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2016, 13:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сортировка студентов по дате рождения (C++):

Сортировка списка студентов по дате рождения (файл) - C++
Очень нужна помощь умельцев. Помогите пожалуйста отсортировать по дате рождения. На этом примере идет сортировка по году, а мне нужно по...

Программа, которая будет сортировать студентов по дате рождения (убывание) - C++
Язык С++ или С. Считывание списков студентов с файла.

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

Сортировка списка студентов в порядке возрастания даты рождения, применяя динамические списки - C++
1) В каждой строке текстового файла Date.in записаны имена с заглавной буквы и даты рождения студентов группы. Напишите фрагмент программы...

По дате рождения и сегодняшней дате посчитать количество прожитых часов (используя классы) - C++
С помощью классов,создать программу, которая считает сколько часов вы прожили. Вводим дату рождения и сегодняшнюю дату,программа должна...

По дате рождения определить возраст - C++
Доброго дня, я новичок в С++ и на вашем форуме тоже. НЕ получается одолеть эту программу: Необходимо написать функцию MyAge Параметр...

5
Blackstar_mafia
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 18
17.04.2016, 13:17  [ТС] #2
Всем привет!
Помогите сортировать студентов по дате рождения и надо вывести на экран студент и год рождения(после сортировки)
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
64
65
66
67
68
69
70
71
72
73
74
75
Всем привет. Нужно сортировать студентов по дате рождения.
Вот мой код.
Че то не получается
 
 
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
 
int main()
{   
setlocale (LC_ALL, "Russian");
struct students
{
    char init[25];
    int groj;
    };
 
 struct students  grup[4];
 int i,n,k=0,j,p;
 
 cout <<"количество студентов:"<<"\t";
 cin >>n;
 cout << "----------------------------------------------------------------------" << endl;
 
 for (i=0;i<n;i++)
{ 
 
 cout <<"\n"<< i+1 <<".Введите информацию студента:"<<endl;
 cout << "----------------------------------------------------------------------" << endl;
    cout << "\n1. Инициал:\t";
    cin >>grup[i].init;
    cout << "\n2. год рождения: \t";
    cin >>grup[i].groj;
    } 
 
 cout << "\n----------------------------------------------------------------------" << endl;
 
for (int i=0; i<n; i++)
{
    
 cout << i+1 <<"Информация студента:"<<"\n";
 
 cout << "----------------------------------------------------------------------" << endl;
 
    cout << "\n1. Инициал:\t" << grup[i].init ;
    cout << "\n2. год рождения:\t" << grup[i].groj ;
    
    cout << "----------------------------------------------------------------------" << endl;
}
    
    cout << endl;
 
 
for(int i=n-1; i>=0; i--)
    {
        for (int j=0; j<i; j++)
        {
            if (grup[i].groj > grup[i+1].groj)
                {       
                    p=grup[i].groj;
                    grup[i].groj=grup[i+1].groj;
                    grup[i+1].groj=p;   
                }
        }
        cout<< grup[i].groj << " - в году  " << grup[i].init << " стундент родился" << endl;    
    } 
    
    
 
 
    system("pause");
    return 0;
}
0
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
17.04.2016, 13:18 #3
Цитата Сообщение от Blackstar_mafia Посмотреть сообщение
if (grup[i].tjyl > grup[i+1].tjyl)
При i=n-1
i+1=n и grup[i+1] выход за пределы массива
0
Blackstar_mafia
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 18
17.04.2016, 13:19  [ТС] #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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Всем привет. Нужно сортировать студентов по дате рождения.
Вот мой код.
Че то не получается
 
 
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
 
int main()
{   
setlocale (LC_ALL, "Russian");
struct students
{
    char init[25];
    int groj;
    };
 
 struct students  grup[4];
 int i,n,k=0,j,p;
 
 cout <<"количество студентов:"<<"\t";
 cin >>n;
 cout << "----------------------------------------------------------------------" << endl;
 
 for (i=0;i<n;i++)
{ 
 
 cout <<"\n"<< i+1 <<".Введите информацию студента:"<<endl;
 cout << "----------------------------------------------------------------------" << endl;
    cout << "\n1. Инициал:\t";
    cin >>grup[i].init;
    cout << "\n2. год рождения: \t";
    cin >>grup[i].groj;
    } 
 
 cout << "\n----------------------------------------------------------------------" << endl;
 
for (int i=0; i<n; i++)
{
    
 cout << i+1 <<"Информация студента:"<<"\n";
 
 cout << "----------------------------------------------------------------------" << endl;
 
    cout << "\n1. Инициал:\t" << grup[i].init ;
    cout << "\n2. год рождения:\t" << grup[i].groj ;
    
    cout << "----------------------------------------------------------------------" << endl;
}
    
    cout << endl;
 
 
for(int i=n-1; i>=0; i--)
    {
        for (int j=0; j<i; j++)
        {
            if (grup[i].groj > grup[i+1].groj)
                {       
                    p=grup[i].groj;
                    grup[i].groj=grup[i+1].groj;
                    grup[i+1].groj=p;   
                }
        }
        cout<< grup[i].groj << " - в году  " << grup[i].init << " стундент родился" << endl;    
    } 
    
    
 
 
    system("pause");
    return 0;
}
0
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
17.04.2016, 13:36 #5
1. Я же намекнул, что в строке
Цитата Сообщение от Blackstar_mafia Посмотреть сообщение
for(int i=n-1; i>=0; i--)
надо начинать не с n-1, а с n-2

2. Уберите вывод из цикла сортировки и сделайте новый цикл для вывода.

И не дублируйте больше тему (нарушаете П. 5.5 Правил)!
0
Blackstar_mafia
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 18
17.04.2016, 13:39  [ТС] #6
неправильно ((
А как вывести на экран ИМЯ и ГОД рождения(после сортировки)?
0
17.04.2016, 13:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2016, 13:39
Привет! Вот еще темы с ответами:

Функция проверки возраста по дате рождения из string - C++
Здравствуйте, есть строка вида: Имя День Месяц Год Valera 15 6 1987 Задача состоит в том чтобы написать функцию для проверка...

Нужно сделать сортировку по дате рождения, по убыванию - C++
Надо отсортировать по дате рождения Всю голову сломал то тут ошибка то там #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Найти самого младшего студента по полной дате рождения - C++
Дан массив, содержащий сведения о студентах группы: фамилия, имя, от- чество, дата рождения (день, месяц, год). Найти самого младшего...

Нужно было написать квадрат Пифагора по дате рождения, как исправить? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;math.h&quot; using namespace std; int main() { int...


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

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

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