Текст программы. #include <iostream>

#include <iostream>

#include <iomanip>

#include <ctime>

using namespace std;

// протитпы функций

void mas2(int **tf, int nf, int mf, int r_min, int r_max);// функция создает 2-мерный массив

//случайных чисел

void print(int **tf, int nf, int mf);// функция печати массива

void Numb_poz_neg(int **tf1, int nf, int mf, int &poz, int &neg);//

//функция вычисляет число

//положительных (poz)и отрицательных(neg) элементов

// главная программа

int main()

{

setlocale(0,"");

int n = 7;

int m = 4;

int **a = new int *[n]; // указатель на массив указателей на int

for(int i = 0; i < n; i++)

a[i] = new int [m]; // каждому эл-ту массива указателей на строки

// присваивается адрес начала участка памяти,

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

//и выделяется память под каждый элемент строки массива

int npoz, nneg; // переменные для числа положит. отриц. элементов

mas2(a,n,m,-10,10);

print(a,n,m);

Numb_poz_neg(a,n,m,npoz,nneg);

cout << "число положит. элементов = " << npoz<<endl;

cout << "число отрицат. элементов = " << nneg<< endl;

system("pause");

return 0;

}

// тексты вызываемых функций

// инициализация массива случайными числами

void mas2(int **tf, int nf, int mf, int r_min, int r_max)// функция создает 2-мерный массив

//случайных чисел

{

srand((unsigned int) time(NULL)); // рандомизация генератора

for(int i=0; i<nf; i++) // цикл по строкам

for(int j=0; j<mf; j++) // цикл по столбцам

tf[i][j]=rand() % (r_max - r_min) + r_min; // инициализация эл-та массива

return; // возврат в место вызова функции

}

// функция вывода массива

void print(int **tf, int nf, int mf)// функция печати массива

{

cout << endl;

for(int i=0; i<nf; i++)

{

for(int j=0; j<mf; j++)

cout << setw(5) << tf[i][j];

cout << endl << endl;

}

return; // возврат обратно в место вызова

}

void Numb_poz_neg(int **tf1, int nf, int mf, int &poz, int &neg)//

//функция вычисляет число

//положительных (poz)и отрицательных(neg) элементов

{

poz = 0; neg = 0;

for(int i=0; i<nf; i++)

for(int j=0; j<mf; j++)

{

if(tf1[i][j]<0) poz += 1;

if(tf1[i][j]>0) neg += 1;

}

return; // возврат обратно в место вызова

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: