Ім'я файлу: Лаб3.doc
Розширення: doc
Розмір: 33кб.
Дата: 11.05.2021
скачати
Пов'язані файли:
проект хостел.doc

У цілочисельній прямокутній матриці визначити:

1) кількість рядків, що не містять жодного нульового елементу;

2) максимальне з чисел, що зустрічаються в заданій матриці більше одного разу.


#include

using namespace std;

void main()

{

system("CLS");

setlocale(LC_ALL, "Russian");

int n, m, i, j;

int x; // к-сть нульових елементів у рядку

int kol = 0; // к-сть рядків, що не містять нульових елементів

cout << "Введiть розмiрнiсть матрицi m*n:" << endl;

cout << "m = ";

cin >> m;

cout << "n = ";

cin >> n;

int **mat = new int*[m];

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

mat[i] = new int [n]; // для кожного елемента динамічного масиву mat створюємо ще по n елементів типу int

// в результаті отримуємо двовимірний масив - матрицю

cout << "Введiть цiлi числа - елементи матрицi М(" << m << "*" << n << "):" << endl;

for (i = 0; i < m; i++)

{

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

{

cout << "М(" << i + 1 << ", " << j + 1 << ") = ";

cin >> mat[i][j];

}

}
// #1

for (i = 0; i < m; i++)

{

x = 0;

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

{

if (mat[i][j] == 0)

x++; // обчислюємо к-сть нульових елементів у кожному рядку

}

if (x == 0)

kol++; // обчислюємо к-сть рядків, які не містять нульових елементів

}

cout << kol << " рядки(-iв) матрицi не мiстять жодного нульового елемента." << endl;
// #2

int max, k, l, s = 0;

int *r = new int;

bool has = false;

*r = m*n;

int *b = new int[*r];

for (i = 0; i < m; i++) // цикл, який послідовно порівнює кожний елемент матриці з іншими елементами

{

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

{

for (k = 0; k < m; k++)

{

for (l = 0; l < n; l++)

{

if (mat[i][j] == mat[k][l] && (i != k || j != l)) // в другій частині умови виключаємо елементи з однаковими індексами

{

b[s] = mat[i][j]; // вміщуємо знайдений повторюваний елемент в масив b

s++;

has = true; // позначаємо, що в матриці присутні повторювані елементи

break; // припиняємо шукати однакові елементи й переходимо до наступного

}

}

}

}

}

max = b[0];

for (i = 0; i < s; i++)

{

if (b[i + 1] > max)

max = b[i + 1];

}

if (has)

cout << "Максимальне число, що зустрiчається в матрицi бiльше 1-го разу, = " << max << "." << endl;

else

cout << "Повторюванi елементи у матрицi вiдсутнi." << endl;

getchar();

}

скачати

© Усі права захищені
написати до нас