Найти максимальные элементы каждой строки матрицы a(5,7) и сохранить их в одномерном массиве b - C (СИ)
Формулировка задачи:
Найти максимальные элементы каждой строки матрицы a(5,7) и сохранить их в одномерном массиве b
Что нужно добавить/поменять в этой программе?
Листинг программы
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- #define M 5
- #define N 7
- #define A -50
- #define B 50
- void InitA(int a[][N],int m, int n)
- {
- int i,j;
- for (i=0;i<m;i++)
- for (j=0;j<n;j++)
- a[i][j]=A+rand()%(B-A+1);
- }
- void PrintA(int a[][N],int m, int n)
- {
- int i,j;
- for (i=0;i<m;i++)
- {
- for (j=0;j<n;j++)
- printf("%5d",a[i][j]);
- printf("\n");
- }
- printf("\n");
- }
- void InitB(int a[][N],int m,int n,int *b)
- {
- int i,j,count,max=a[0][0];
- for(i=0;i<m;i++)
- for(j=count=0;j<n;j++)
- {
- if(a[i][j]>max)
- max=a[i][j];
- b[i]=max;
- }
- }
- void PrintB(int *a,int n)
- {
- int i;
- for (i=0;i<n;i++)
- printf("%5d",a[i]);
- printf("\n");
- }
- int main()
- {
- int a[M][N],b[M];
- srand(time(NULL));
- InitA(a,M,N);
- PrintA(a,M,N);
- InitB(a,M,N,b);
- PrintB(b,M);
- return 0;
- }
Решение задачи: «Найти максимальные элементы каждой строки матрицы a(5,7) и сохранить их в одномерном массиве b»
textual
Листинг программы
- void InitB(int a[][N],int m,int n,int *b)
- {
- int i,j,count,max=a[0][0];
- for(i=0;i<m;i++)
- {
- for(j=0;j<n;j++)
- {
- if(a[i][j]>max)
- max=a[i][j];
- }
- b[i] = max;
- if(i<m-1)
- max = a[i+1][0];
- }
- }
Объяснение кода листинга программы
- Входные данные:
a
- двумерный массив размеромm
xn
, содержащий элементы, которые нужно обработать.m
- количество строк в массивеa
.n
- количество столбцов в массивеa
.b
- одномерный массив, в который будут сохраняться максимальные элементы каждой строки матрицыa
.
- Инициализация переменной
count
для подсчета количества найденных максимальных элементов. - Инициализация переменной
max
значением первого элемента первой строки матрицыa
. - Два вложенных цикла:
- Первый цикл проходит по всем строкам матрицы
a
. - Второй цикл проходит по всем столбцам текущей строки.
- Первый цикл проходит по всем строкам матрицы
- Внутри второго цикла проверяется, является ли текущий элемент больше текущего максимального элемента. Если да, то обновляется значение
max
. - После завершения второго цикла, значение
max
сохраняется в одномерном массивеb
и обновляется значениеmax
для следующей строки. - Если есть еще строки в матрице
a
, то после каждой итерации значениеmax
сбрасывается до значения первого элемента следующей строки. - Функция возвращает
void
, так как не производит возврата значения.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д