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

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

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

Очередная сортировка в структуре студент - C++

27.05.2013, 03:08. Просмотров 308. Ответов 0
Метки нет (Все метки)

по заданию нужна сортировка по возрастанию номера групп, если я пытаюсь использовать для этого qsort, компилятор выдаёт фатальную ошибку.
по возможности вставить эту сортировку после чтение массива из файла, или же дать алгоритм использования qsort, видимо я её не правильно описываю

заранее благодарю

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
#include <iostream>
#include <cstring>
#include <stdlib.h>
#include "fstream"
 
using namespace std;
 
struct student
{
    char name[30];
    int group;
    int ses[5];
};
 
int cmp(const void* p1, const void* p2)
{
    return strcmp(((student*)p1)->name, ((student*)p2)->name);
}
 
int main()
{
    int n, i, j; //обьявляем переменные
    cout << "Vvedite kolvo struktur - ";
    cin >> n; //число элементов в массиве структур
 
    student *stud1 = new student [n]; //выделение динамической памяти под массив структур
 
 
    ifstream instr("inform.txt");   //открытие файла для ввода
    if(!instr) //если файл не найден тогда....
    {
        cout<<"File can not be open\n"; //выводим сообщение
        return 0; //выход из программы
    }
 
    cout << endl << "second name\tgroup\t\t    marks" << endl << endl;
 
    //заполнение массива считыванием из файла
    for(i = 0; i < n; i++)
    {
        instr >> stud1[i].name >> stud1[i].group;
        cout << stud1[i].name << '\t' << stud1[i].group;
            for(j = 0; j < 5; j++)
            {
                instr >> stud1[i].ses[j];
                cout << '\t' << stud1[i].ses[j];
            }
            cout << endl;
    }
    instr.close(); //закрываем файл
 
    qsort(stud1, n, sizeof(student), cmp);
 
    int fl=1;
    for (int i=0; i<n; i++)
    {
        int j=0;
        while((j<5)&&(stud1[i].ses[j]!=2))
            j++;
        if (j<5)
        {
            fl=0;
            cout<<"Student "<<stud1[i].name<<" (group "<<stud1[i].group<<") have mark 2"<<endl;
        }
    }
    if (fl)
        cout<<"No students, which have mark 2"<<endl;
 
    cin.get();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 03:08     Очередная сортировка в структуре студент
Посмотрите здесь:

Очередная сортировка структуры - C++
Подобных вопросов были тонны, и тонны еще будут. Есть прога, кривая и написанная собственноручно. Написать ее ума хватило, а вот чтоб...

Очередная сортировка пузырьком - C++
Здравствуйте! :) Нашёл я сортировку пузырьком на Википедии: void bubble_sort(int *a, int length) { for (int i = 0; i &lt;=...

Сортировка в структуре - зависание при печати - C++
Уважаемые! Помогите! Как доходит до несортированного списка - не печатает а зависает!!!! не вижу почему! #include &lt;iostream&gt; ...

Сортировка в структуре. Вывести отличников на экран - C++
Отсортировать студентов по фамилии в алфавитном порядке. Вывести на экран анкетные данные студентов-отличников. Если таких нет, то выдать...

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

Очередная формация давно решённой задачи - C++
Всем доброго времени суток! Необходимо было решить задачу с 2мя кубиками: Задача: написать программу, реализующую игру в кости. ...

Очередная запись в реестр - изменения не вносятся - C++
Всем привет! Столкнулся с такой проблемой - вот код на C++: #include &lt;Windows.h&gt; int WinMain(HINSTANCE, HINSTANCE, LPSTR, int) ...

Структура Студент - C++
Есть работающий код. Не могу исправить ошибку с выводом рейтинга Выводит неизвестно откуда взятые числа #include &quot;stdafx.h&quot; ...

Структура Студент - C++
1. Используя ввод-вывод в стиле С создать файл и записать в него структурированные данные. 2. Вывести созданный файл на экран. ...

Класс Студент - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; //базовый класс &quot;студент&quot; class CStudent { protected: char...


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

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

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