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 |
//Borland C++ 3.1 Сортировка структуры по датам Листинг #1 #include <iostream.h> #include <stdlib.h> #include <time.h> const int N = 5; //Количество элементов в массиве структур //Сейчас в структуре только дата и функции Получить дату, Показать дату и перевод даты в Юлианское значение struct MyTime{ int day; int month; int year; int Julian(); void GetData(); void Show(); }; void MyTime::GetData(){ cin >> day >> month >> year; } //Получаем данные и запоминаем их в соответствующих переменных void MyTime::Show() { cout << day << "." << month << "." << year << "\n"; } //Выводим данные /*Функция переводит текущее получение значение даты в Юлианское значение*/ int MyTime::Julian() { int a = (14-month)/12; //Промежуточные коэффициенты int y = year + 4800 - a; int m = month + 12*a - 3; int JDN = day + (153*m+2)/5+365*y+y/4-y/100+y/400-32045; //Переход к Юлианскому дню return JDN; //Возвращаем рассчитанный результат } //Функция перестановки местами значений void swap(MyTime &x, MyTime &y) { MyTime temp=x; x=y; y=temp; } int main() { MyTime T1[N]; //Объявляем массив структур for (int i=0;i<N;i++) T1[i].GetData(); //Записываем в массив значения cout << "\n"; //Выполняем пузырьковую сортировку for (int i=1; i<N; i++){ for (int j=0; j<N-1; j++){ if (T1[i].Julian() > T1[j].Julian()) swap(T1[i],T1[j]) ; //Сравниваем Юлианские значения } } cout << "\nIS SORT\n"; //Выводим на экран надпись о сортировке for (int i=0; i<N; i++) T1[i].Show(); //Показываем дату на экране return 0; } |
Здравствуйте! помогите пожалуйста решить сделать сортировку по цене и автору книги !!!