Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- using std::endl;
- using std::cout;
- using std::swap;
- using std::cin;
- const size_t CALENDAR_SIZE = 31;
- const float ABSOLUTE_ZERO = -273.15;
- const size_t DECADE_LEFT_BORDER = 12;
- const size_t DECADE_RIGHT_BORDER = 21;
- int main()
- {
- // set russian
- SetConsoleOutputCP(1251);
- SetConsoleCP(1251);
- float calendar[CALENDAR_SIZE];
- float averageTemp = 0;
- cout << "Заполните календарь температур в декабре: " << endl;
- for (size_t i = 0; i < CALENDAR_SIZE; i++)
- {
- float tmp;
- cout << "[" << i + 1 << "] день, температура = ";
- cin >> tmp;
- while (tmp <= ABSOLUTE_ZERO)
- {
- cout << endl << "Температура не может быть меньше абсолютного нуля(-273.15°C), введите ещё раз = ";
- cin >> tmp;
- }
- calendar[i] = tmp;
- averageTemp += tmp;
- }
- averageTemp /= CALENDAR_SIZE;
- //A part
- cout << endl << "Exercise A:" << endl;
- cout << "Среднемесячная температура составила = " << averageTemp << "°C" << endl;
- //B part
- cout << endl << "Exercise B:" << endl;
- size_t nTimes = 0;
- for (size_t i = 0; i < CALENDAR_SIZE; i++)
- if (calendar[i] > 0)
- nTimes++;
- cout << "За декабрь температура превысила 0°C " << nTimes << " раз" << endl;
- //С part
- size_t maxId = 0, minId = 0;
- cout << endl << "Exercise С:" << endl;
- for (size_t i = 1; i < CALENDAR_SIZE; i++)
- {
- if (calendar[i] <= calendar[minId])
- minId = i;
- if (calendar[i] >= calendar[maxId])
- maxId = i;
- }
- cout << "Наибольшая температура была в " << maxId + 1 << " день и составляля " << calendar[maxId] << "°C" << endl;
- //D part
- cout << endl << "Exercise D:" << endl;
- bool isFind = false;
- for (size_t i = 0; i < CALENDAR_SIZE; i++)
- if (calendar[i] > 0)
- {
- isFind = true;
- cout << "Температура первый раз поднялась выше нуля в " << i + 1 << " день и составила = " << calendar[i] << "°C" << endl;
- calendar[i]++;
- break;
- }
- if (!isFind)
- cout << "Температура ни разу не превысила 0°C" << endl;
- //E part
- cout << endl << "Exercise E:" << endl;
- cout << "Самая холодная температура встретилась в " << minId + 1 << " день и составила = " << calendar[minId] << "°C" << endl;
- //F part
- cout << endl << "Exercise F:" << endl;
- nTimes = 0;
- for (size_t i = 0; i < CALENDAR_SIZE; i++)
- if (calendar[i] > averageTemp)
- nTimes++;
- cout << "Температура превысила среднюю(" << averageTemp << "°C) " << nTimes << " раз" << endl;
- //G part
- cout << endl << "Exercise G" << endl;
- size_t closeId = 0;
- for (size_t i = 1; i < CALENDAR_SIZE; i++)
- if (abs(averageTemp - calendar[closeId]) > abs(calendar[i] - calendar[closeId]))
- closeId = i;
- cout << "День, когда температура была ближе всего к средней(" << averageTemp << "°C) - " << closeId + 1 << " день и составила " << calendar[closeId] << "°C" << endl;
- //H part
- cout << endl << "Exercise H:" << endl;
- size_t minTempId = DECADE_LEFT_BORDER;
- for (size_t i = DECADE_LEFT_BORDER + 1; i < DECADE_RIGHT_BORDER + 1; i++)
- if (calendar[i] < calendar[minTempId])
- minTempId = i;
- cout << "Самая холодная температура во второй декаде встретилась в " << minTempId + 1 << " день и составила = " << calendar[minTempId] << "°C" << endl;
- //I part
- cout << endl << "Exercise I:" << endl;
- minTempId = maxId;
- for (size_t i = maxId + 1; i < CALENDAR_SIZE; i++)
- if (calendar[i] < calendar[minTempId])
- minTempId = i;
- cout << "Самая холодная температура,встречавшаяся после самой тёплой за весь месяц(" << calendar[maxId]
- << ") встретилась в " << minTempId + 1 << " день и составила = " << calendar[minTempId] << "°C" << endl;
- //J part
- cout << endl << "Exercise J:" << endl;
- cout << "Самая холодная температура = " << calendar[minId] << "°C ,а самая тёплая = " << calendar[maxId] << "°C" << endl;
- swap(calendar[maxId], calendar[minId]);
- swap(maxId, minId);
- cout << "Календарь изменился, теперь он выглядит так:" << endl;
- for (size_t i = 0; i < CALENDAR_SIZE; i++)
- cout << "[" << i + 1 << "] день, температура = " << calendar[i] << endl;
- //K part
- cout << endl << "Exercise K:" << endl;
- minId = 0;
- for (size_t i = 0; i < CALENDAR_SIZE; i++)
- if (calendar[minId] > calendar[i])
- minId = i;
- averageTemp = 0;
- for (size_t i = 0; i < minId; i++)
- averageTemp += calendar[i];
- averageTemp /= minId;
- cout << "Средняя температура дней, до самого холодного, равна " << averageTemp << "°C" << endl;
- //L part
- cout << endl << "Exercise L:" << endl;
- nTimes = 1;
- for (size_t i = 0; i < CALENDAR_SIZE && nTimes < 3; i++)
- if (calendar[minId] == calendar[i])
- cout << nTimes++ << "-м самым холодным днём был " << i + 1 << " день" << endl;
- //M part
- cout << endl << "Exercise M:" << endl;
- nTimes = 0;
- bool isNegative = calendar[0] < 0;
- for (size_t i = 1; i < CALENDAR_SIZE; i++)
- if (isNegative && calendar[i] > 0)
- {
- nTimes++;
- isNegative = false;
- }
- else if (!isNegative && calendar[i] < 0)
- {
- nTimes++;
- isNegative = true;
- }
- cout << "Температура поменя свой знак " << nTimes << " раз" << endl;
- //N part
- cout << endl << "Exercise N:" << endl;
- nTimes = 0;
- cout << "Первая минимальная температура равнялась " << calendar[minId] << "°C и встретилась в " << minId + 1 << " день" << endl;
- float temp = calendar[minId];
- for (size_t i = minId + 1; i < CALENDAR_SIZE; i++)
- calendar[i - 1] = calendar[i];
- calendar[CALENDAR_SIZE - 1] = temp;
- cout << "Календарь изменился, теперь он выглядит так:" << endl;
- for (size_t i = 0; i < CALENDAR_SIZE; i++)
- cout << "[" << i + 1 << "] день, температура = " << calendar[i] << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement