
Тема: Работа с несколькими массивами C++ Задача:Даны два двумерных массива из 12строк и
28столбцов. В первом из них записана температура воздуха за каждый из первых 28дней каждого месяца 2009года, во втором — аналогичные сведения за 2010год. Получить третий массив с данными об изменении температуры для каждого дня (в%).

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

===== C++ 17 =====
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int nm = 12, nd = 28;
float t2009[12][28], t2010[12][28], pt[12][28];
float dT[nm][2] ={{-7.3,-4},{-9.8, -9.1},{-4.4, 2.6},{2.2,11.3},
{7.7,18.6},{12.1,22},{14.4,24.3},{12.5,21.9},
{7.4,15.7},{2.2,8.7},{-3.3,0.9},{-7.6,-3}};
srand(time(NULL));
for(int m = 0; m < nm; m++)
{
float k = (dT[m][1] - dT[m][0])/RAND_MAX;
for(int d =0; d < nd; d++)
{
t2009[m][d] = rand() * k + dT[m][0];
t2010[m][d] = rand() * k + dT[m][0];
pt[m][d] = t2010[m][d] / t2009[m][d] * 100;
}
}
cout << "2009\n";
for(int m = 0; m < nm; m++)
{
for(int d =0; d < nd; d++)
cout << fixed << setw(5) << setprecision(1) << t2009[m][d];
cout << endl;
}
cout << "2010\n";
for(int m = 0; m < nm; m++)
{
for(int d =0; d < nd; d++)
cout << fixed << setw(5) << setprecision(1) << t2010[m][d];
cout << endl;
}
cout << "PERCENTS\n";
for(int m = 0; m < nm; m++)
{
for(int d =0; d < nd; d++)
cout << fixed << setw(5) << setprecision(0) << pt[m][d];
cout << endl;
}
return 0;
}




Для решения данной задачи вам понадобится создать третий двумерный массив, размерностью 12 строк и 28 столбцов, чтобы хранить информацию об изменении температуры для каждого дня.
Вот пример кода на C++, который выполняет данную задачу:
cpp#include <iostream>
const int ROWS = 12;
const int COLS = 28;
void calculateTemperatureChange(double arr1[ROWS][COLS], double arr2[ROWS][COLS], double result[ROWS][COLS])
{
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
result[i][j] = ((arr2[i][j] - arr1[i][j]) / arr1[i][j]) * 100.0;
}
}
}
int main()
{
double temperatures2009[ROWS][COLS];
double temperatures2010[ROWS][COLS];
double temperatureChange[ROWS][COLS];
// Заполнение массивов temperatures2009 и temperatures2010 данными о температуре
// Вызов функции для вычисления изменения температуры
calculateTemperatureChange(temperatures2009, temperatures2010, temperatureChange);
// Вывод результата
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
std::cout << temperatureChange[i][j] << "% ";
}
std::cout << std::endl;
}
return 0;
}
В этом примере мы объявляем три двумерных массива: temperatures2009
для хранения данных о температуре воздуха за каждый день в 2009 году, temperatures2010
для хранения данных о температуре воздуха за каждый день в 2010 году и temperatureChange
для хранения информации об изменении температуры.
Функция calculateTemperatureChange
вычисляет изменение температуры для каждого дня, используя формулу: (температура 2010 года - температура 2009 года) / температура 2009 года * 100
.
Затем в функции main
вызывается функция calculateTemperatureChange
с передачей массивов temperatures2009
, temperatures2010
и temperatureChange
в качестве аргументов.
Наконец, происходит вывод результата в консоль, где каждое значение изменения температуры выводится в процентах.


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