Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <Windows.h>
- using namespace std;
- int main()
- {
- SetConsoleOutputCP(1251);
- SetConsoleCP(1251);
- size_t strMarksSize;
- cout << "Enter the amount of marks = ";
- cin >> strMarksSize;
- auto marksArray = new pair<int, pair<double, double>>[strMarksSize];
- cout << "Fill data:" << endl;
- int temp;
- for (size_t i = 0; i < strMarksSize; i++)
- {
- cout << i << ") ";
- string skipName;
- cin >> marksArray[i].first;
- cin >> skipName >> skipName;
- double min, max, summary = 0;
- cin >> min;
- max = min;
- for (size_t j = 0; j < 7; j++)
- {
- cin >> temp;
- if (temp > max)
- {
- max = temp;
- }
- if (temp < min)
- {
- min = temp;
- }
- summary += temp;
- }
- summary -= max;
- if (min != max)
- {
- summary -= min;
- }
- marksArray[i].second.first = summary;
- cin >> min;
- max = min;
- summary = 0;
- for (size_t j = 0; j < 7; j++)
- {
- cin >> temp;
- if (temp > max)
- {
- max = temp;
- }
- if (temp < min)
- {
- min = temp;
- }
- summary += temp;
- }
- summary -= max;
- if (min != max)
- {
- summary -= min;
- }
- marksArray[i].second.second = summary;
- }
- for (size_t i = 0; i < strMarksSize - 1; i++)
- {
- for (size_t j = 0; j < strMarksSize - i - 1; j++)
- {
- if (marksArray[j].second.second < marksArray[j + 1].second.second)
- {
- swap(marksArray[j], marksArray[j + 1]);
- }
- }
- }
- string result;
- int index = 0, preIndex = 0;
- for (size_t i = 0; i < strMarksSize; i++)
- {
- if (marksArray[i].second.second != marksArray[index].second.second)
- {
- index = i;
- break;
- }
- result += to_string(marksArray[i].first) + ") первое место " + to_string(marksArray[i].second.second) + '\n';
- }
- if (index != preIndex)
- {
- preIndex = index;
- for (size_t i = index; i < strMarksSize; i++)
- {
- if (marksArray[i].second.second != marksArray[index].second.second)
- {
- index = i;
- break;
- }
- result += to_string(marksArray[i].first) + ") второе место " + to_string(marksArray[i].second.second) +
- '\n';
- }
- if (index != preIndex)
- {
- for (size_t i = index; i < strMarksSize; i++)
- {
- if (marksArray[i].second.second != marksArray[index].second.second)
- {
- index = i;
- break;
- }
- result += to_string(marksArray[i].first) + ") третье место " + to_string(marksArray[i].second.second) +
- '\n';
- }
- }
- }
- cout << endl << result;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement