Найти сумму наименьших элементов нечетных строк и наибольших элементов четных строк матрицы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана матрица размером 6 x 6. Найти сумму наименьших элементов ее нечетных строк и наибольших элементов ее четных строк.

Решение задачи: «Найти сумму наименьших элементов нечетных строк и наибольших элементов четных строк матрицы»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <Windows.h>
  3. #define LOW       -10
  4. #define HIGH       10
  5. #define ROWS        6
  6. #define COLUMNS     6
  7.  
  8. int sum_of_max_in_even(int*matrix);
  9. int sum_of_min_in_odd(int*matrix);
  10.  
  11.  
  12. int main() {
  13.    
  14.     srand(time(NULL));
  15.     int i, j;
  16.     int Sum_in_even = 0, Sum_on_odd;
  17.     int *matrix = malloc(ROWS*COLUMNS * sizeof(int));
  18.     // fill the matrix with random numbers and print it to console
  19.     for (i = 0; i < ROWS; i++) {
  20.         for (j = 0; j < COLUMNS; j++) {
  21.             matrix[i*COLUMNS + j] = rand() % (HIGH + 1 - LOW) + LOW;
  22.             printf("%3d ", matrix[i*COLUMNS + j]);
  23.         }
  24.         printf("\n");
  25.     }
  26.  
  27.     printf("\nThe sum of maximums of the even rows is: %d", sum_of_max_in_even(matrix));
  28.     printf("\nThe sum of minimums of the odd rows is:  %d", sum_of_min_in_odd(matrix));
  29.  
  30.     printf("\n");
  31.     system("pause");
  32.     return 0;
  33. }
  34.  
  35. int sum_of_max_in_even(int*matrix) {
  36.     int sum = 0, i = 0, j = 0;
  37.     int max_in_row = -2147483647;
  38.     for (i = 0; i < ROWS; i += 2) {
  39.         for (j = 0; j < COLUMNS; j++) {
  40.             // check only even rows
  41.             if (matrix[i*COLUMNS + j] > max_in_row) {
  42.                 max_in_row = matrix[i*COLUMNS + j];
  43.             }
  44.         }
  45.         sum += max_in_row;
  46.     }
  47.     return sum;
  48. }
  49.  
  50. int sum_of_min_in_odd(int*matrix) {
  51.     int sum = 0, i = 0, j = 0;
  52.     int min_in_row = 2147483647;
  53.     for (i = 0; i < ROWS; i++) {
  54.         for (j = 0; j < COLUMNS; j++) {
  55.             // check only odd rows
  56.             if (i % 2 == 1) {
  57.                 if (matrix[i*COLUMNS + j] < min_in_row) {
  58.                     min_in_row = matrix[i*COLUMNS + j];
  59.                 }
  60.             }
  61.         }
  62.         if(i%2 == 1) sum += min_in_row;
  63.     }
  64.     return sum;
  65. }

Объяснение кода листинга программы

Код представлен на языке 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы