Найти максимальные элементы каждой строки матрицы 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];
    }        
}

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

  1. Входные данные:
    • a - двумерный массив размером m x n, содержащий элементы, которые нужно обработать.
    • m - количество строк в массиве a.
    • n - количество столбцов в массиве a.
    • b - одномерный массив, в который будут сохраняться максимальные элементы каждой строки матрицы a.
  2. Инициализация переменной count для подсчета количества найденных максимальных элементов.
  3. Инициализация переменной max значением первого элемента первой строки матрицы a.
  4. Два вложенных цикла:
    • Первый цикл проходит по всем строкам матрицы a.
    • Второй цикл проходит по всем столбцам текущей строки.
  5. Внутри второго цикла проверяется, является ли текущий элемент больше текущего максимального элемента. Если да, то обновляется значение max.
  6. После завершения второго цикла, значение max сохраняется в одномерном массиве b и обновляется значение max для следующей строки.
  7. Если есть еще строки в матрице a, то после каждой итерации значение max сбрасывается до значения первого элемента следующей строки.
  8. Функция возвращает void, так как не производит возврата значения.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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