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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ вывести список содержащий только положительные элементы http://www.cyberforum.ru/cpp-beginners/thread126836.html
помогите с кодом! вообщем тема СПИСКИ! создаем список какой то......в него можно добавлять элементы, удалять, искать!!! с 1 по 10 пункт программа работает...а вот 11 пункт не хочет делать! 11 пункт - вывести список содержащий только положительные элементы! попробуйте запустите..потестируйте...может поймете в чем дело #include "stdafx.h" #pragma hdrstop #pragma argsused #include...
C++ Вычисление интегралов Помогите пожалуйста составить программу для вычисления значения определенного интеграла от функции cosx\x для нулевого нижнего и действительного верхнего предела a с точностью ε с использованием рекурсии. Скажу сразу в теме полный ноль, только начал разбираться, поэтому прокомментируйте поподробнее что к чему. http://www.cyberforum.ru/cpp-beginners/thread126832.html
Константные поля и операция присвоения - как быть? C++
У меня в классе реализовано константное поле: int const constant; инициализация такой переменной происходит в конструкторе в списке инициализации: GoodClass::GoodClass(char* str,int inint):constant(inint){ //... }; по идее ясно, что изменить такое поле невозможно но если надо?(
Вычисление рекурсивным методом значение математической зависимости C++
Вычислить рекурсивным методом значение математической зависимости, заданной рекуррентной формулой, для произвольного значения параметров. Функция Аккермана: n, m = 0, 1, 2, … A(m, n) = n+1 , если m=0 A(m, n) = A(m-1, 1) , если n=0 A(m, n) = A(m-1, A(m, n-1)), если m>0, n>0 Помогите пожалуйста, искал в гугле ничего не нашел , книга тоже не помогла. Нужно к понедельнику данная задачка....
C++ Код С++ http://www.cyberforum.ru/cpp-beginners/thread126772.html
ПОжалуста напишите код для задачи: Составить программу, выясняющую, является ли данное слово перевертышем ( так называются слова, читающиеся одинаково слева направо и справа налево, например: ПОТОП, НАГАН ). спс.
C++ Лабораторные на С Прошу вас помогите. У меня 10 л.р. и из них я смогла сделать только 4 штуки! прошу вас помогите!знаю позор мне и вы можете обругать сколько хотите,но если я не сделаю их до четверга 13 мая, то я уже никогда не стану программистом(от всего сердца(на жалость не давлю).все надо решить на языке си, да так что бы работало в Codegear RAD Studio 2009.Не оставляйте меня. я круглыми ночами сижу за лабами... подробнее

Показать сообщение отдельно
Crudelis
Шаровик затейник
670 / 412 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
08.05.2010, 16:12     Сортировка структур по полю
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 минуту
В задаче в качестве результатов использовать можно целые числа. Если необходимо использовать десятичные то скажу что изменить
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru