Найти сумму наименьших элементов нечетных строк и наибольших элементов четных строк матрицы - C (СИ)
Формулировка задачи:
Дана матрица размером 6 x 6. Найти сумму наименьших элементов ее нечетных строк и наибольших элементов ее четных строк.
Решение задачи: «Найти сумму наименьших элементов нечетных строк и наибольших элементов четных строк матрицы»
textual
Листинг программы
#include <stdio.h> #include <Windows.h> #define LOW -10 #define HIGH 10 #define ROWS 6 #define COLUMNS 6 int sum_of_max_in_even(int*matrix); int sum_of_min_in_odd(int*matrix); int main() { srand(time(NULL)); int i, j; int Sum_in_even = 0, Sum_on_odd; int *matrix = malloc(ROWS*COLUMNS * sizeof(int)); // fill the matrix with random numbers and print it to console for (i = 0; i < ROWS; i++) { for (j = 0; j < COLUMNS; j++) { matrix[i*COLUMNS + j] = rand() % (HIGH + 1 - LOW) + LOW; printf("%3d ", matrix[i*COLUMNS + j]); } printf("\n"); } printf("\nThe sum of maximums of the even rows is: %d", sum_of_max_in_even(matrix)); printf("\nThe sum of minimums of the odd rows is: %d", sum_of_min_in_odd(matrix)); printf("\n"); system("pause"); return 0; } int sum_of_max_in_even(int*matrix) { int sum = 0, i = 0, j = 0; int max_in_row = -2147483647; for (i = 0; i < ROWS; i += 2) { for (j = 0; j < COLUMNS; j++) { // check only even rows if (matrix[i*COLUMNS + j] > max_in_row) { max_in_row = matrix[i*COLUMNS + j]; } } sum += max_in_row; } return sum; } int sum_of_min_in_odd(int*matrix) { int sum = 0, i = 0, j = 0; int min_in_row = 2147483647; for (i = 0; i < ROWS; i++) { for (j = 0; j < COLUMNS; j++) { // check only odd rows if (i % 2 == 1) { if (matrix[i*COLUMNS + j] < min_in_row) { min_in_row = matrix[i*COLUMNS + j]; } } } if(i%2 == 1) sum += min_in_row; } return sum; }
Объяснение кода листинга программы
Код представлен на языке C и выполняет следующие действия:
- Ввод: Программа запрашивает у пользователя ввести число, которое будет использоваться в качестве исходного значения для генератора псевдослучайных чисел.
- Заполнение матрицы: Создается матрица размером 6x6, заполняемая случайными целыми числами от -10 до 10 с помощью функции
rand()
. - Вычисление суммы: Вычисляется сумма максимальных элементов четных строк и минимальных элементов нечетных строк матрицы. Для этого используются две отдельные функции:
sum_of_max_in_even()
иsum_of_min_in_odd()
. - Вывод: Результат вычислений выводится на экран.
- Ожидание нажатия клавиши: Программа ожидает, пока пользователь не нажмет клавишу, чтобы закрыть консольное окно.
- Завершение работы программы: Программа завершает свою работу, возвращая значение 0 в функцию
main()
. Ниже приведен список действий, выделенных пунктами, и соответствующие им номера: - Ввод - 1
- Заполнение матрицы - 2
- Вычисление суммы - 3
- Вывод - 4
- Ожидание нажатия клавиши - 5
- Завершение работы программы - 6
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д