Дан массив n*n. Найти в каждом столбце минимальный элемент и записать данные в новый массив — C++(Си)

#include <iostream>
using namespace std;
 
 
int ** creat(int &n, int &m) 
{//cout<<"n="; cin>>n; m=n;
int **mas=new int *[n];
for (int i=0; i<n; ++i) mas[i]=new int [m];
for ( i=0; i<n; ++i)
for (int j=0; j<m; ++j) {cout<<"mas["<<i<<"]["<<j<<"]="; cin>>mas[i][j];}
return mas;}
 
int main()
{int n,m;
cout<<"n="; cin>>n; m=n;
int **a=creat(n,m);
int *b=new int[n];
int min=a[0][0];
for (int i=0; i<n; ++i)
{min=a[0][i];
for (int j=0; j<m; ++j)
if (a[j][i]<min)
{
    min=a[j][i];    
}b[i]=min;
}
for (i=0; i<n; ++i)
cout<<"min= "<<b[i]<<endl;
        return 0;
}

Следующий вариант

#include <iostream>
  
int main()
{
    setlocale( LC_ALL,"Russian" );
    int row,column;
    int i,j; // счетчики.
    std::cout << "Введите кол-во строк в массиве: ";
    std::cin >> row;
    std::cout << "Введите кол-во столбцов в массиве: ";
    std::cin >> column;
 
    int **MAS = new int *[row]; // выделение памяти для массива MAS.
    for (i = 0; i < row; i++)
    MAS[i] = new int [column];
 
    for (i=0; i<row; i++) // заполняем массив MAS.
    for (j=0; j<column; j++)
    {
        std::cout << "MAS["<< i <<"]["<< j <<"]: ";
        std::cin >> MAS[i][j];
    }
 
    int *MAS_min=new int [column]; // выделение памяти для массива MAS_min.
    int min;
 
    for (i=0; i<row; i++)
    {
        min=MAS[i][0]; 
        for (j=0; j<column; j++) // находим минимальный элемент в строке.
        if (min>MAS[i][j]) min=MAS[i][j];
 
        MAS_min[i]=min; // записываем во второй массив.
        std::cout << MAS_min[i] << "  ";
    }
 
    std::cout << std::endl;
    for (int i = 0; i < row; i++)
    delete []MAS[i];
    delete []MAS;
    delete []MAS_min;
    system("pause");
    return 0;
}

Leave a Comment