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

Сортировка структур по полю - C++

Восстановить пароль Регистрация
 
Tenataliya
4 / 4 / 0
Регистрация: 07.05.2010
Сообщений: 40
08.05.2010, 12:37     Сортировка структур по полю #1
Здравствуйте всем! Я здесь новичок. Учусь на программиста на 1 курсе, скажу прямо мне очень тяжело.Мне нужно до 15 мая сдать курсовую, а там 3 задачи надо сделать. В ообщем я не могу хоть убей. Осмелюсь Вас всех попросить, может кто-нибудь мне поможет Напишите пожалуйста программы на задачи на С++
1 Задача:Задан список участников соревнований по плаванию и их результаты. Напечатать фамилию и результат чемпиона. Расположить результаты и фамилии участников в соответствии с занятыми местами.

Добавлено через 8 минут
Задача 2: Составить программу.для контроля знаний. В программе задается один вопрос, ответ на который включает несколько наименований (например, "Назовите все элементы периодической системы, представляющие группу галогенов?" или "Назовите все города с населением свыше одного миллиона?" и т. п.). В памяти ЭВМ хранится список наименований являющийся полным ответом на вопрос. Введенный ответ необходимо сравнить с правильным.

Добавлено через 1 час 0 минут
Указание к решению задачи №1:
Задача сводится к упорядочению массива результатов в порядке возрастания, но при выполнении перестановки в массиве результатов нужно переставлять соответствующие элементы и в массиве фамилий.

Указание к решению задачи №2:
Список наименований, являющийся полным ответом на вопрос, хранить в символьном массиве. Ответы обучаемого вводить в другой символьный массив. Для повышения эффективности программы можно правильные ответы ввести в массив упорядоченными (или упорядочить сразу после ввода), а после ввода ответов, перед сравнением, упорядочить и массив ответов. Для сравнения использовать алгоритм сравнения двух упорядоченных массивов. Алгоритмы упорядочения массивов и сравнения двух упорядоченных массивов оформить в виде подпрограмм.

Всем заранее СПАСИБО!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
08.05.2010, 16:12     Сортировка структур по полю #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
/*1 Задача:Задан список участников соревнований по плаванию и их результаты. 
Напечатать фамилию и результат чемпиона. Расположить результаты и фамилии участников 
в соответствии с занятыми местами.
Указание к решению задачи №1:
Задача сводится к упорядочению массива результатов в порядке возрастания, 
но при выполнении перестановки в массиве результатов нужно переставлять соответствующие 
элементы и в массиве фамилий.*/
 
#include<iostream>
#include<windows.h>
using namespace std;
struct Sorev
{
    char fio[50];
    int rez;
};
Sorev *Sort(Sorev *uch, int n)
{
    Sorev *uchtem=new Sorev[n];
    for(int i=0;i<n;i++)
    {
        for(int j=n-1;j>i;j--)
        {
            if(uch[j-1].rez<uch[j].rez)
            {
                uchtem[j].rez=uch[j].rez;
                uch[j].rez=uch[j-1].rez;
                uch[j-1].rez=uchtem[j].rez;
                strcpy(uchtem[j].fio,uch[j].fio);
                strcpy(uch[j].fio,uch[j-1].fio);
                strcpy(uch[j-1].fio,uchtem[j].fio);
            }
            
        }
    }
    return uch;
 
}
void main()
{
    setlocale(LC_CTYPE,"Rus");
    int n=0;
    cout<<"Введите количество участников соревнования: ";
    cin>>n;
    cin.ignore(1);
    Sorev *uch=new Sorev[n];
    for(int i=0;i<n;i++)
    {
        cout<<"Введите фамилию участника: ";
        gets(uch[i].fio);
        OemToCharA(uch[i].fio,uch[i].fio);
        cout<<"Введите результат: ";
        cin>>uch[i].rez;
        cin.ignore(1);  
    }
    uch=Sort(uch,n);
    for(int i=0;i<n;i++)
    {
        if(i==0)
            cout<<"Чемпион соревнований:\n"<<uch[i].fio<<"\t"<<uch[i].rez<<"\n\n";
        else
        cout<<uch[i].fio<<"\t"<<uch[i].rez<<endl;   
    }
    cout<<endl;
 
delete [] uch;
}
Добавлено через 1 минуту
В задаче в качестве результатов использовать можно целые числа. Если необходимо использовать десятичные то скажу что изменить
Tenataliya
4 / 4 / 0
Регистрация: 07.05.2010
Сообщений: 40
08.05.2010, 16:17  [ТС]     Сортировка структур по полю #3
Спасибо, что откликнулись! Я думаю что так пойдет.
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
08.05.2010, 16:29     Сортировка структур по полю #4
на счет второй задачи подумаю, у меня вопрос на счет упорядочивания, т.е. необходимо ввести массив ответов, массив ответов человека, упорядочить их.... но для чего упорядочивать, не пойму ведь ответ может быть 1 и 0, как их упорядочивать... можете уточнить пожалуйста да и ещё оформить в виде подпрограммы это как? если знаете напишите, может проходили где на лекциях что это
Yandex
Объявления
08.05.2010, 16:29     Сортировка структур по полю
Ответ Создать тему
Опции темы

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