Дана матрица, получить вектор наибольших значений ее строк - 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].