Написать программу на 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;
}
![](https://st.uroker.com/files/cb8/cb80d34cf346973ae7b01b4f255ad98e.jpg)