Дана матрица, получить вектор наибольших значений ее строк - C (СИ)
Формулировка задачи:
Дана матрица A(n*m). Получить вектор b1, b2, ..., bn, где bi равно наибольшему значению в строке.
Решение задачи: «Дана матрица, получить вектор наибольших значений ее строк»
textual
Листинг программы
- int i, j, n, m;
- double a[50][50];
- double b[50];
- n = 7;
- m = 9;
- // Заполнение массива
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < m; j++)
- {
- a[i][j] = rand() % 20 - 10;
- printf("%6.2lf ", a[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- // Формирование вектора
- for ( i = 0; i < n; i++)
- {
- b[i] = -1000000;
- for ( j = 0; j < m; j++)
- {
- if (a[i][j] > b[i]) b[i] = a[i][j];
- }
- printf("b[%d] = %f\r\n", i, b[i]);
- }
Объяснение кода листинга программы
- Объявлены переменные:
i
,j
,n
,m
- целочисленные индексыa[50][50]
- двумерный массив размером 50x50b[50]
- одномерный массив размером 50n = 7
,m = 9
- инициализируют размеры первого и второго массивов
- Заполнение массива
a[50][50]
случайными числами от -10 до 10 с шагом 1 (включая 0) - Формирование вектора
b[50]
путем перебора всех элементов массиваa[50][50]
и сравнения их с текущим максимальным значением в вектореb[50]
. Если текущий элемент больше максимального, он становится новым максимальным. - Вывод на экран полученного вектора
b[50]
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д