Генератор цветов Уроки C++ Уроки Windows forms Учебники по программированию Уроки HTML Уроки CSS Готовые задания Исходники Полезные программы
регистрация доменов

Дешёвые домены


Уроки C++


Номер столбца двумерного массива (матрицы) из положительных элементов C++

Для решения этой задачи зразу же нужно уяснить, для тех, кто ещё не знает, двумерный массив – “Матрица”, одномерный массив – “вектор”. Объявление двумерного массива не чём особо не отличается от объявления одномерного – просто у матрицы уже два параметра: количество строк и столбцов. Для этого добавляется ещё один цикл "for()". В данной задаче мы применим библиотеки "vector и "algorithm" для ввода размерности массива. И не забывайте, что элементы в массиве начинают считаться с нуля "0".

И так что бы решить данную задачу нужно просматривать матрицу по столбцам. Так же нужно создать переменную логического типа "bool", которая может принимать только два значения "true" "false" – истина, ложь, это ещё называют “флажком”. И поэтому когда пройдя очередной элемент и найдя хотя бы один отрицательный элемент флажок падает и принимает значение “false”, но как только обнаружен первый подходяший столбец программа сообщает об этом и прекращает работу. Этот булевый тип переменных нам обязательно понадобиться при создании полноценный приложений в разделе Visual Studio – Windows Forms. Ну а пока скомпилируем решение данной задачи, вот код её решения:



#include "stdafx.h"
#include "iostream"
#include "iomanip"
#include "vector"
#include "algorithm"

using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
int n;
cout << "Введиет размерность матрицы: ";
cin >> n;
cout << endl << endl;
vector > mas(n, vector (n));   // квадратная матрица
srand(time(NULL));
for (int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
mas[i][j] = rand()% 10 - 1;
cout << mas[i][j] <<" ";
}
cout<<"\r\n";
}
cout << endl << endl;
bool flag;
for(int j=0; j<n; j++)
{
flag = true;
for (int i=0; i<n; i++)

if (mas[i][j] < 0) { flag = false; break; }
if (flag) { cout << "Номер столбца: " << j << endl;
system("PAUSE"); return 0;}
}
cout << "Столбцов нет!" << endl;
system("PAUSE");
return 0;
}


Результат:



<< К списку заданий