#include <iostream>
#include <cstdlib> // Для генерации случайных чисел (rand)
#include <ctime> // Для привязки случайных чисел ко времени
using namespace std;
int main() {
// Настройка генератора случайных чисел
srand(time(0));
// ==========================================
// ЗАДАНИЕ 1: Одномерный массив X(N)
// ==========================================
cout << "--- Задание 1: Одномерный массив ---" << endl;
int N;
cout << "Введите размер массива N: ";
cin >> N;
// Создаем массив с запасом (чтобы не усложнять код динамической памятью new/delete)
int X[100];
cout << "Введите элементы массива через пробел: ";
for (int i = 0; i < N; i++) {
cin >> X[i];
}
// Ищем максимальный элемент и его индекс
int max_val = X[0];
int max_index = 0;
for (int i = 1; i < N; i++) {
if (X[i] > max_val) {
max_val = X[i];
max_index = i;
}
}
// Считаем сумму элементов после максимального
int sum_after = 0;
for (int i = max_index + 1; i < N; i++) {
sum_after += X[i];
}
cout << "Максимальный элемент: " << max_val << " (на позиции " << max_index << ")" << endl;
cout << "Сумма элементов после максимального: " << sum_after << endl << endl;
// ==========================================
// ЗАДАНИЕ 2: Матрица 8x8
// ==========================================
cout << "--- Задание 2: Матрица 8x8 ---" << endl;
const int SIZE = 8;
int matrix[SIZE][SIZE];
// Заполняем матрицу случайными числами от 1 до 9 и выводим её
cout << "Сгенерированная матрица:" << endl;
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
matrix[i][j] = 1 + rand() % 9;
cout << matrix[i][j] << " ";
}
cout << endl;
}
// 1. Поиск суммы в заштрихованной области (ниже главной диагонали и сама диагональ)
// Главная диагональ - это когда номер строки равен номеру столбца (i == j).
// Всё что ниже - это когда номер строки больше (i > j).
int shaded_sum = 0;
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
if (i >= j) { // Условие заштрихованной области
shaded_sum += matrix[i][j];
}
}
}
cout << "\nСумма в заштрихованной области: " << shaded_sum << endl;
// 2. Формируем одномерный массив из сумм нечетных столбцов
// В C++ счет идет с нуля. Нечетные по ИНДЕКСУ столбцы: 1, 3, 5, 7.
int sums_array[4]; // Всего их будет 4
int array_index = 0;
for (int j = 1; j < SIZE; j += 2) { // Шагаем по столбцам: 1, 3, 5, 7
int current_col_sum = 0;
for (int i = 0; i < SIZE; i++) { // Проходим по всем строкам в этом столбце
current_col_sum += matrix[i][j];
}
sums_array[array_index] = current_col_sum;
array_index++;
}
// Выводим полученный массив
cout << "Суммы нечетных столбцов (индексы 1, 3, 5, 7): ";
for (int i = 0; i < 4; i++) {
cout << sums_array[i] << " ";
}
cout << endl;
return 0;
}