Процедура построения одномерного массива из минимальных элементов каждой строки матрицы - 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];
}
}
}
Объяснение кода листинга программы
Вывод:
- Объявлены массив и переменные
- Заполнены массив и вектор
- Выведена матрица
- Выведен вектор
- Выполняется функция func
- В функции func выводится минимальный элемент каждой строки матрицы в вектор