Консультация № 174970
07.12.2009, 03:01
0.00 руб.
0 1 1
Сформировать из целочисленной матрицы А[n,m] одномерный массив B[m] из минимальных элементов столбцов матрицы А[n,m].
Выполнить в качестве функции пользователя.

___________________________________________
Программы должна быть написана на C++ и работать на Microsoft Visual C++ 6.0
Прошу написать как можно более доступным языком и закоментировать каждую строчку по максимуму. (ну почти каждую)
Еще ОЧЕНЬ ОЧЕНЬ нужна БлокСхема (пожалуйста хотя бы ручкой на бумаге набросайте как она должна выглядеть) (ну или кистью в пэйнте)
Плииз очень нужно.

Обсуждение

давно
Старший Модератор
17042
808
10.12.2009, 08:16
общий
это ответ
Здравствуйте, Иванов Евгений Витальевич!
Решение Вашей задачи - в приложении (код комментирован). Программа написана на Standard C++, а значит, должна без проблем компилироваться в MS Visual C++ 6. Удачи!


Приложение:
#include <iostream>
using namespace std;
//------------------------------------------------------------
// Функция нахождения минимального элемента столбца матрицы
// 1-й параметр - сама матрица,
// 2-й - число строк в ней,
// 3-й - столбец для поиска минимального элемента.
int iMinimal(int** piArray, int iRows, int iColumn)
{
// Пусть минимальным будет 0-й элемент столбца
int iMinimal = piArray[0][iColumn];

// Проходим по элементам столбца (сортировка)
for(int i = 1; i < iRows; ++i)
{
if(piArray[i][iColumn] < iMinimal) iMinimal = piArray[i][iColumn];
}
return iMinimal;
}
//------------------------------------------------------------
int main()
{
int iRows, iColumns;
cout << "Введите число строк в матрице: ";
cin >> iRows;
cout << "Введите число столбцов в матрице: ";
cin >> iColumns;

int** piMatrix; // Матрица в виде двойного указателя
// Создан массив из iRows элементов, каждый из которых - указатель на int.
piMatrix = new int* [iRows];
cout << "Начинайте ввод элементов в матрицу: " << endl;
for(int i = 0; i < iRows; i++)
{
cout << "Строка " << i << "." << endl;
// Определяется массив из iRows указателей, каждый из которых
// адресует массив из iColumns целых чисел - элементов матрицы.
piMatrix[i] = new int[iColumns];
for(int j = 0; j < iColumns; j++)
{
cout << "[" << i << "][" << j << "]: ";
// Ввод значения в элемент матрицы piMatrix[i][j] обычным способом.
cin >> piMatrix[i][j];
}
}

int iArray[iColumns]; // Новый массив
cout << "Элементы нового массива: " << endl;
// Заполняем элементы нового массива значениями минимальных элементов столбцов матрицы
for(int i = 0; i < iColumns; i++)
{
iArray[i] = iMinimal(piMatrix, iRows, i);
cout << i << ": " << iArray[i] << endl;
}

// Не забываем освобождать память,
// выделенную для для каждого из элементов матрицы.
for(int i = 0; i < iRows; i++) delete[] piMatrix[i];
// Не забываем освобождать память, выделенную для для самой матрицы.
delete[] piMatrix;

return 0;
}
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Форма ответа