
Написать программу на C++ для решения следующей задачи: Вычислить z1=(xmax+ymin)/2 и
z2=(xmin+ymax)/2 где xmax и ymax – максимальные элементы массивов X(20), Y(30); xmin и ymin – минимальные элементы этих же массивов (вычисление максимального и минимально элементов массива осуществлять в одной подпрограмме).

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

// C++17
#include <iostream>
using namespace std;
void minmax(int a[], int n, int& min, int& max)
{
min = max = a[0];
for(int i = 1; i < n; i++)
if(a[i] < min)
min = a[i];
else if(a[i] > max)
max = a[i];
}
void initmas(int a[], int n)
{
for(int i=0; i < n; i++)
{
a[i] = rand() % 199 - 98; // [-99,99]
cout << a[i] << " ";
}
cout << endl;
}
int main()
{
srand(time(0));
int nx = 20, ny = 30;
int x[nx], y[ny];
cout << "Массив х\n";
initmas(x, nx);
cout << "Массив y\n";
initmas(y, ny);
int xmin, xmax, ymin, ymax;
float z1, z2;
minmax(x, nx, xmin, xmax);
minmax(y, ny, ymin, ymax);
z1 = (xmax + ymin) / 2.0;
z2 = (xmin + ymax) / 2.0;
cout << "z1 = " << z1 << ", z2 = " << z2;
return 0;
}




Вот пример программы на C++, которая решает данную задачу:
cpp#include <iostream>
#include <limits>
void findMinMax(int arr[], int size, int& minVal, int& maxVal) {
minVal = std::numeric_limits<int>::max();
maxVal = std::numeric_limits<int>::min();
for (int i = 0; i < size; i++) {
if (arr[i] < minVal) {
minVal = arr[i];
}
if (arr[i] > maxVal) {
maxVal = arr[i];
}
}
}
int main() {
const int X_SIZE = 20;
const int Y_SIZE = 30;
int X[X_SIZE] = { /* Здесь должны быть значения элементов массива X */ };
int Y[Y_SIZE] = { /* Здесь должны быть значения элементов массива Y */ };
int xmin, xmax, ymin, ymax;
findMinMax(X, X_SIZE, xmin, xmax);
findMinMax(Y, Y_SIZE, ymin, ymax);
double z1 = static_cast<double>(xmax + ymin) / 2.0;
double z2 = static_cast<double>(xmin + ymax) / 2.0;
std::cout << "z1 = " << z1 << std::endl;
std::cout << "z2 = " << z2 << std::endl;
return 0;
}
Программа предполагает, что значения элементов массивов X
и Y
будут введены пользователем. Вы можете заполнить массивы X
и Y
нужными значениями перед вызовом функции findMinMax
, либо использовать ввод с клавиатуры или другие способы получения значений.
Обратите внимание, что в этой программе предполагается, что в массивах X
и Y
будет по крайней мере один элемент. Если массивы могут быть пустыми, то перед вызовом функции findMinMax
следует добавить проверку на пустой массив.


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








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