
C++ срочно Измерение температурыДевочка Грета занимается исследованиями в области глобального
потепления. Грета замеряла температуру на улице в течение N дней. Теперь ей интересна следующая статистика: для каждой температуры в интервале [−T;T] узнать номера дней, в которые держалась данная температура.Входные данныеВ первой строке входных данных содержатся два натуральных числа: T и N (T≤60, N≤1000). В следующей строке содержатся N целых чисел, по модулю не превосходящих 100 — измерение температуры в каждый из дней. Дни нумеруются с единицы.Выходные данныеВыведите 2T+1 строк. Каждая строка должна содержать данные о днях, в которые держалась данная температура. Используйте формат вывода в соответствии с примером. Температуры необходимо выводить в порядке от меньшей к большей. Дни для каждой температуры необходимо выводить в порядке возрастания.ПримерыВводВывод5 102 -6 0 4 4 0 -4 -5 -3 2-5: 8 -4: 7 -3: 9 -2: -1: 0: 3 6 1: 2: 1 10 3: 4: 4 5 5:

Ответы на вопрос

Ответ:
#include <iostream>
using namespace std;
int main()
{
int t, n;
cin >> t >> n;
int a[n];
for (int i = 0; i < n; ++i){
int mark;
cin >> mark;
a[i] = mark;
}
for (int i = -t; i <= t; ++i){
cout << i << ": ";
for (int j = 0; j < n; ++j)
if(a[j] == i)cout << j + 1 << " ";
cout << endl;
}
return 0;
}
Объяснение:
не знаю, что тут объяснять, вроде все просто.
P.s. Если помогло, дайте, пожалуйста, лучший ответ и жмякните на "Спасибо". Это мотивирует продолжать давать ответы.
Upd. 1. Спасибо человеку из комментариев за поправки.



Для решения этой задачи вы можете использовать ассоциативный контейнер (например, std::map
), чтобы хранить температуры в качестве ключей и соответствующие им дни в виде списка. Вот пример решения на C++:
cpp#include <iostream>
#include <map>
#include <vector>
int main() {
int T, N;
std::cin >> T >> N;
std::map<int, std::vector<int>> temperatureDays;
for (int i = 1; i <= N; ++i) {
int temp;
std::cin >> temp;
temperatureDays[temp].push_back(i);
}
for (int temp = -T; temp <= T; ++temp) {
std::cout << temp << ": ";
if (temperatureDays.find(temp) != temperatureDays.end()) {
for (int day : temperatureDays[temp]) {
std::cout << day << " ";
}
}
std::cout << std::endl;
}
return 0;
}
Пример входных данных:
diff5 10
-6 0 4 4 0 -4 -5 -3 2 5
Пример вывода:
makefile-5: 8
-4: 7
-3: 9
-2:
-1:
0: 2 5
1:
2: 10
3: 3 4
4: 6
5: 1
Этот код сначала читает входные данные, затем использует std::map
для хранения информации о температуре и соответствующих днях. После этого он выводит номера дней для каждой температуры в заданном диапазоне [-T;T].


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili