Переписать все положительные элементы матрицы
С(6,8)
в вектор А
. используя метод простой сортировки, расположить их по возрастанию.Результат работы программы показан ниже:
#include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; int main(int argc, char* argv[]) { srand(time(NULL)); // засеиваем генератор случайных чисел значением времени int matrixC[6][8]; // объявление матрицы С for (int line_counter = 0; line_counter < 6; line_counter++) { for (int column_counter = 0; column_counter < 8; column_counter++) { matrixC[line_counter][column_counter] = rand() % 100 - rand() % 100; // заполняем двумерный массив случайными числами [-99;99] cout << setw(3) <<matrixC[line_counter][column_counter] << " "; } cout << endl; } cout << "======================================" << endl; int min = 100; // самое максимальное может быть 99, поэтому переменную min инициализируем значением 100 int vectorA[48], // вектор положительных отсортированных чисел line_min, // номер строки, в которой найдено минимальное значение column_min, // номер столбца, в котором найдено минимальное значение counterA = 0; // счётчик элементов вектора положительных отсортированных чисел while (true) // цикл поиска и сортировки положительных чисел из двумерного массива { ////////////////////////поиск минимального числа////////////////////////////////// for (int line_counter = 0; line_counter < 6; line_counter++) for (int column_counter = 0; column_counter < 8; column_counter++) if ((matrixC[line_counter][column_counter] < min) && (matrixC[line_counter][column_counter] >= 0)) { min = matrixC[line_counter][column_counter]; // минимальное в двумерном массиве line_min = line_counter; // номер строки column_min = column_counter; // номер столбца } ////////////////////////////////////////////////////////////////////////////////// if (min != 100) // если ещё не все значения просмотрены { vectorA[counterA] = min; // положить минимальное значение в вектор matrixC[line_min][column_min] = -1; // в двумерном массиве на место минимального элемента ставим -1 counterA++; // увеличиваем счётчик элементов вектора положительных отсортированных чисел на 1 min = 100; // минимальное присваеваем 100 } else break; // иначе выход из цикла while } // печать элементов вектора for (int counter = 0; counter < counterA; counter++) { cout << vectorA[counter] << " "; } cout << endl; system("pause"); return 0; }
CppStudio.com
-3 39 76 -24 -62 -56 8 -90 -83 54 41 -77 -10 -5 -48 52 24 -48 -82 34 -31 52 68 63 -54 -97 -44 9 36 0 95 -12 91 -33 68 17 27 9 -20 -20 -12 17 -44 41 -19 32 -10 -5 ====================================== 0 8 9 9 17 17 24 27 32 34 36 39 41 41 52 52 54 63 68 68 76 91 95
Комментарии
Cloud_Mind
IrishSilvan
Adam1983
petruska
мой вариант
Мгер Цолакян
Nedwid
Вот мое решение с использованием <vector>