using namespace std;
#include <algorithm>
#include <iostream>
#include <vector>
#include <ctime>
int main() {
vector<int> arr;
srand(time(0));
int N = 10;
int min = 9999999, minIndex;
int average = 0;
for(int i = 1; i<=N; ++i) {
arr.push_back(rand());
cout << arr[i-1] << " ";
if(arr[i-1]<min) {
min = arr[i-1];
minIndex = i-1;
}
average+=arr[i-1];
}
cout << endl << "Min: " << min << endl << "Average: " << average/N << endl;
swap(arr[minIndex], arr[arr.size()-1]);
for(int i = 1; i<=N; ++i) {
cout << arr[i-1] << " ";
}
cout << endl << " > average: ";
for(int i = 1; i<=N; ++i) {
if(arr[i-1]>average/N) {
cout << arr[i-1] << " ";
}
}
}
2. После выполнения фрагмента кода получим матрицу, в которой главная диагональ равна -1, -2, -3 ... -98, -99, -100 и все элементы над главной диагональю будут отрицательные, каждый следующий элемент в строке от главной диагонали будет меньше предыдущего на 1 и строка заканчиваются -100
3. Элементы под главной диагональю положительные и равны номеру строки.
Пример такой матрицы (только не 100Х100, а 5Х5, просто не влезет в экран, но чтобы понять как формируется такой массив достаточно):
-1 -2 -3 -4 -5
2 -2 -3 -4 -5
3 3 -3 -4 -5
4 4 4 -4 -5
5 5 5 5 -5
4. Далее можно вручную посчитать сумму элементов матрицы, а можно написать программу для этого:
const n = 100;
var a:array[1..n,1..n] of integer;
i,k,s:integer;
begin
for i:=1 to n do begin
for k:=1 to n do begin
if i > k then
A[i,k] := i
else A[i,k] := -k;
s:=s+a[i,k];
end;
end;
writeln(s);
end.
ответ: -5050