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

Сортировка массива структур - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсивные функции. http://www.cyberforum.ru/cpp-beginners/thread276713.html
с самой функцией нет проблем проблема в самой программе задание звучит так Для заданных двух натуральных числа m и n найти НОД(m, n) и натуральные x и y такие, что mx + ny = НОД(m, n). программа всё это выполняет но мой цикл просто ужасает и работает очень медленно посмотрите если ес ть идеи подскажите как ускорить работу #include <iostream.h> #include <conio.h> #include <stdio.h>...
C++ Маленький вопросик public partial class Form1 : Form { float AnswerValue; float ScreenValue; string SumString; string CurrentOperator; bool ClearScreen; public Form1() { http://www.cyberforum.ru/cpp-beginners/thread276712.html
C++ За один просмотр одномерного массива заменить все его элементы с нечетными номерами их квадратами
За один просмотр одномерного массива заменить все его элементы с нечетными номерами их квадратами, а с четными увеличить на заданное число Q. В головной функции осуществить печать исход¬ного иполученного массивов.
C++ почему printf не видит некоторые аргументы?
программа на с++, но для ограничения числа знаков после запятой использовала printf. #include <iostream.h> #include <stdlib.h> #include <stdio.h> void main() { int colPos, rowPos; int i, j, k, razm,g; double max;
C++ из Visual Basic в С++..маленький вопросик http://www.cyberforum.ru/cpp-beginners/thread276693.html
как Dim a As Double Dim b As Integer записать на с++???
C++ Распечатать односвязный список классов создал несколько классов так :первый класс абстактный втрой унаследывает от первого, третий от второго в первом класе есть функция print()=0 она переопеределяетса во втором и третем, так же в первом сделал указатели для добавления новых обьектов классов в список (односвязный) Animals *next; static Animals *first; static friend void print_list() { Animals *temp = first;... подробнее

Показать сообщение отдельно
ZevS13
1 / 1 / 0
Регистрация: 05.12.2010
Сообщений: 15

Сортировка массива структур - C++

14.04.2011, 23:51. Просмотров 980. Ответов 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
#include <iostream> 
#include <iomanip>
#include <algorithm>
#include <list>
using namespace std;
struct  Student                     
 {
   char Name[20];           //  Имя
   double Propusk;        //  Пропуск
   int Uvagit;                      //  Уважительный пропуск
   double Vpropusk;                 //Пропуск в ведомость
   double Procprop;         //Процент пропусков 
   bool operator < ( const Student a )
        {
             return Procprop < a.Procprop;
        }
 };
typedef list<Student> entry;
int main()
{
    int n;
    entry elist;
    double s1,s2,s3;
    setlocale(0,"rus");
    cout<<"Формирование записи"<<endl;
    cout<<"Введите количество студентов";
    cin>>n;
    Student *zapis=new Student [n];
    
    cout <<"Документ должен сожержать "<<n<< " строки - записи: \n";
         for( int i=0; i < n; i++)
      {
cout << "\nФормирование  " << i + 1 <<  "  записи";
cout << "\nВведите имя студента(не более 20 символов:   ";
cin >>  zapis[i].Name;      // Доступ к элементу а экземпляра структуры zapis[i]
                                   // выполняется операцией точка (.)
cout << "\nУкажите число пропущенных часов студентом(целое число)  : \n";
cin >>  zapis[i].Propusk;       // Доступ к элементу t экземпляра структуры zapis[i]
cout << "\nУкажите число пропущенных часов студентом по уважительной причине(целое число)  : \n";
cin >>  zapis[i].Uvagit;       // Доступ к элементу k экземпляра структуры zapis[i]
    }
         //  Выполнение расчетов:
      s1=0;s2=0;s3=0;
      for(int i=0; i < n; i++)
       {
          zapis[i].Vpropusk=zapis[i].Propusk-zapis[i].Uvagit;
          zapis[i].Procprop=(zapis[i].Vpropusk/zapis[i].Propusk)*100;
                s1 += zapis[i].Propusk;
                s2 += zapis[i].Uvagit;
                s3 += zapis[i].Vpropusk;
            
       }
      //  Построение "шапки" таблицы
 
    system("cls"),
    cout << "\n      Ведомость посещения занятий студентами:       ";
    cout <<endl<<"|------------------------------------------------------------------------------|";
    cout <<endl<<"|n|Фамилия     |Пропусков|Уважительный пропусков|Пропус в ведом.  |Проц.  проп.|";
    cout <<endl<<"|------------------------------------------------------------------------------|";
 
// Заполнение таблицы данными:
    for(int i=0;i<n;i++)
    
    cout << "\n|" << setw(1) << i+1 << "|" << setw(12) << zapis[i].Name << "|"
 
    << setw(9) << setprecision(3) << zapis[i].Propusk << "|"
 
    << setw(22) << setprecision(3)<<  zapis[i].Uvagit << "|"
    << setw(17) << setprecision(3)<< zapis[i].Vpropusk <<"|"
    << setw(12) << setprecision(3)<<zapis[i].Procprop << "|";
    cout <<endl<<  "|------------------------------------------------------------------------------| ";
    cout <<endl<<  "|ИТОГ:" << setw(19) << setprecision(3) << s1
    << "|" << setw(22) << setprecision(3) << s2<< "|" <<setw(17) << setprecision(3) << s3 << "|" 
    << setw(13) << setprecision(3) << "|";
    cout << "\n|------------------------------------------------------------------------------|"<<endl;
 
 
 
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru