Процедура построения одномерного массива из минимальных элементов каждой строки матрицы - C (СИ)

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

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

Вечер добрый. У меня возникла проблема с использованием процедуры в программе. Алгоритм программы: я ввожу двухмерный массив, после из него формируется и выводится одномерный массив(каждый элемент одномерного массива равен минимальному элементы каждой строки двухмерного массива). Написать саму процедуру я смог, но как её использовать в основной программе я не могу понять.
#include <stdio.h>
#include <conio.h>
#define n 4
#define m 5
 
void mass1(int i, int j, float min) // построение одномерного массива А1 из минимальных элементов каждой строки массива А.
    {
    float M2[i][j];
    float M1[i];
    for (i=0; i<n; i++)
        {
        min=M2[i][0];
        for (j=0; j<m; j++)
            {
            if (M2[i][j] < min)
            min=M2[i][j];
            }
        M1[i]=min;
        }
 
int main()
{
int i, j;
float A[n][m], min, min1, M1;
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
        {
        printf("vvedite A[%d][%d]", i, j);
        scanf("%f", &A[i][j]); // ввод массива A.
        }
    }
printf("massiv A:\n");
printf("\n");
 
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
        printf("%.1f\t", A[i][j]); // вывод массива А.
        printf("\n");
    }
printf("\n");
printf("massiv iz min elementov massiva A(A1):" );
А вот дальше как использовать процедуру я не могу понять.
}

Решение задачи: «Процедура построения одномерного массива из минимальных элементов каждой строки матрицы»

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
 
 
enum{ N = 4, M = 5 };
 
void func(int [][M], int []);
 
 
int main(void){
    srand(time(NULL));
 
    int matrix[N][M];
 
    for (int r = 0; r < N; ++r){
        for (int c = 0; c < M; ++c)  matrix[r][c] = rand() % 10;
    }
 
    for (int r = 0; r < N; ++r){
        for (int c = 0; c < M; ++c)  printf("%d ", matrix[r][c]);
        printf("\n");
    }
    printf("\n");
 
    int vector[N];
 
    func(matrix, vector);
 
    for (int i = 0; i < N; ++i)  printf("%d ", vector[i]);
    printf("\n");
 
    return EXIT_SUCCESS;
}
 
 
void func(int matrix[][M], int vector[]){
    for (int r = 0; r < N; ++r){
        vector[r] = matrix[r][0];
 
        for (int c = 1; c < M; ++c){
            if (vector[r] < matrix[r][c])  vector[r] = matrix[r][c];
        }
    }
}

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

Вывод:

  1. Объявлены массив и переменные
  2. Заполнены массив и вектор
  3. Выведена матрица
  4. Выведен вектор
  5. Выполняется функция func
  6. В функции func выводится минимальный элемент каждой строки матрицы в вектор

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


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

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

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