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

  1. Ввод: Программа запрашивает у пользователя ввести число, которое будет использоваться в качестве исходного значения для генератора псевдослучайных чисел.
  2. Заполнение матрицы: Создается матрица размером 6x6, заполняемая случайными целыми числами от -10 до 10 с помощью функции rand().
  3. Вычисление суммы: Вычисляется сумма максимальных элементов четных строк и минимальных элементов нечетных строк матрицы. Для этого используются две отдельные функции: sum_of_max_in_even() и sum_of_min_in_odd().
  4. Вывод: Результат вычислений выводится на экран.
  5. Ожидание нажатия клавиши: Программа ожидает, пока пользователь не нажмет клавишу, чтобы закрыть консольное окно.
  6. Завершение работы программы: Программа завершает свою работу, возвращая значение 0 в функцию main(). Ниже приведен список действий, выделенных пунктами, и соответствующие им номера:
  7. Ввод - 1
  8. Заполнение матрицы - 2
  9. Вычисление суммы - 3
  10. Вывод - 4
  11. Ожидание нажатия клавиши - 5
  12. Завершение работы программы - 6

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы