logo
Методичка 2 Программирование

2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.

#include<iostream> //подключение системных средств для

using namespace std; //возможности использовать потоки ввода-вывода

#include<iostream> //для форматированного вывода матрицы

#include "Rus.h" //прототип функции русификации

#define STR 3 //задаем количество строк в массиве

#define STLB 4 //задаем количество столбцов в массиве

#define NSTLB 2 //задаем номер анализируемого столбца

int main(void)

{

int *matr=new int[STR*STLB];//объявляем массив

int kol=0; //переменная под количество

int i, j, J;

int *p=matr; //адрес первого элемента в матрице.

//заполнения двумерного массива числами с клавиатуры;

cout<<"\nВведите массив";

for(i=0; i<STR; i++) //перебор элементов массива

for(j=0; j<STLB; j++)

cin>>*( p+i*STLB+j);

//вывода двумерного массива;

cout<<"\nИсходный массив: ";

for(i=0; i<STR; i++) //перебор элементов массива

{

for(j=0; j<STLB; j++)

cout<<setw(8)<< *(p+i*STLB+j); //выводим элемент массива

cout<<endl; //переводим курсор на след строку

}

//вычисления количества положительных элементов произвольного //столбца матрицы;

J=NSTLB-1; //номер столбца превращаем в индекс

for(i=0; i<n; i++) // перебор строк одного столбца с индексом J

if(*(p+i*STLB+J)>0) // если элемент массива положительный

kol++; //количество увеличиваем на1

cout<< "\nКоличество равно "<< kol<<endl;

return 0;

}