Найти сумму наименьших элементов нечетных строк и наибольших элементов четных строк матрицы - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д