#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
int main() {
int n, s = 0, max = 0, min = 9;
srand(time(NULL));
do {
cout << "Input size of matrix: n = ";
cin >> n;
if (n < 0)
{
cout << "Input error! n < 0. Please try again" << endl;
continue;
}
else break;
} while (true);
int **matr = new int* [n];
for(int i = 0; i < n; i++)
matr[i] = new int [n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n;j++)
{
matr[i][j] = rand() % 10;
cout << matr[i][j] << " ";
}
cout << endl;
}
for (int i = 0; i < n; i++)
{
if (max < matr[i][i])
max = matr[i][i];
if (min > matr[i][n-i-1])
min = matr[i][n-i-1];
s += matr[i][i] + matr[i][n - i - 1];
}
if (n % 2 != 0)
s -= matr[n / 2][n / 2];
cout <<"Maximum number on the main diagonal: " << max << endl << "Minimum number on the secondary diagonal: " << min << endl << "Sum of numbers on the diagonals: " << s;
return 0;
}
/* Редактор не сохраняет отступы зачастую, поэтому прикрепил .cpp файл с кодом */
Программа на PascalABC
Program 29844007;
uses
GraphABC;
var
XL1,YL1,XR1,YR1:integer; ///координаты первого прямоугольника
XL2,YL2,XR2,YR2:integer; ///координаты второго прямоугольника
XL0,YL0,XR0,YR0:integer; ///координаты результата
s:string; ///строка для вывода результатов;
begin
Window.SetSize(700,700);
writeln('Первый прямоугольник: ');
writeln('Введите X левого нижнего угла ');read(XL1);
writeln('Введите Y левого нижнего угла ');read(YL1);
writeln('Введите X правого верхнего угла ');read(XR1);
writeln('Введите Y правого верхнего угла ');read(YR1);
writeln('Второй прямоугольник: ');
writeln('Введите X левого нижнего угла ');read(XL2);
writeln('Введите Y левого нижнего угла ');read(YL2);
writeln('Введите X правого верхнего угла ');read(XR2);
writeln('Введите Y правого верхнего угла ');read(YR2);
if XL1<XL2 then XL0:=XL1 else XL0:=XL2;
if YL1<YL2 then YL0:=YL1 else YL0:=YL2;
if XR1<XR2 then XR0:=XR2 else XR0:=XR1;
if YR1<YR2 then YR0:=YR2 else YR0:=YR1;
/// Выводим сначала результирующий прямоугольник синим цветом
Brush.Color := clBlue;
Rectangle(XL0,700-YL0,XR0,700-YR0);
/// Рисуем первый прямоугольник красным цветом
Brush.Color := clRed;
Rectangle(XL1,700-YL1,XR1,700-YR1);
/// Выводим второй прямоугольник зелёным
Brush.Color := clGreen;
Rectangle(XL2,700-YL2,XR2,700-YR2);
/// Выводим кординаты
Brush.Color := clWhite;
s:='Координаты левого нижнего угла: '+ IntToStr(XL0)+' '+IntToStr(YL0);
TextOut(0,0,s);
s:='Координаты правого верхнего угла: '+ IntToStr(XR0)+' '+IntToStr(YR0);
TextOut(0,20,s);
end.
Пример вывода на прикреплённом рисунке.