Другие языки программирования и технологии
Если в заданной матрице A(N, N) есть хотя бы один элемент, боль-ший ста, то элементы обеих диагоналей замените нулям
решить на си++
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
bool random_square_matrix(int **, const size_t, const int _left = -100, int _rigth = 110);
void show_square_matrix(int **, const size_t);
void delete_matrix(int **, size_t);
int ** create_square_matrix(int **, const size_t);
bool search_more(int **, const size_t, const int);
void to_null_diagonals(int **, const size_t);
int main() {
srand(unsigned(time(NULL)));
wcout.imbue(locale("rus_rus.866"));
wcout << L"\n Введите размер квадратной матрицы: ";
size_t size;
cin >> size;
int ** matrix = NULL;
matrix = create_square_matrix(matrix, size);
if (random_square_matrix(matrix, size)) {
wcout << L"\n\tИсходная матрица: \n\n";
show_square_matrix(matrix, size);
int element = 100;
if (search_more(matrix, size, element)) {
to_null_diagonals(matrix, size);
wcout << L"\tИзменённая матрица: \n\n";
show_square_matrix(matrix, size);
} else wcout << L"\tНет таких! \n";
} else wcout << L"\aНеудалось заполнить матрицу! \n";
delete_matrix(matrix, size);
matrix = NULL;
cin.get(); cin.get();
}
inline bool search_more(int ** _matrix, const size_t _size, const int _element) {
for (size_t row = 0; row < _size; row++) for (size_t col = 0; col < _size; col++) if (_matrix[row][col] > _element) return true;
return false;
}
inline void to_null_diagonals(int ** _matrix, const size_t _size) {
size_t m = _size - 1;
for (size_t n = 0; n < _size; n++) {
_matrix[n][n] = 0;
_matrix[m - n][n] = 0;
}
}
inline bool random_square_matrix(int ** _matrix, const size_t _size, const int _left, int _rigth) {
if (_left >= _rigth) return false;
if (_left < 0 && _rigth >= 0) _rigth += abs(_left);
else if (_left < 0 && _rigth < 0) _rigth = abs(_left) - abs(_rigth);
else if (_left >= 0 && _rigth > 0) _rigth -= _left;
for (size_t row = 0; row < _size; row++) for (size_t col = 0; col < _size; col++) _matrix[row][col] = rand() % _rigth + _left;
return true;
}
inline void show_square_matrix(int ** _matrix, const size_t _size) {
if (_size) for (size_t row = 0; row < _size; row++, cout << endl << endl) for (size_t col = 0; col < _size; col++) cout << setw(5) << _matrix[row][col];
else wcout << L"Нет данных для отображения! \n";
}
inline void delete_matrix(int ** _matrix, size_t _rows) {
for (size_t row = 0; row < _rows; row++) delete[] _matrix[row];
delete[] _matrix;
}
inline int ** create_square_matrix(int ** _matrix, const size_t _size) {
_matrix = new int * [_size];
for (size_t row = 0; row < _size; row++) _matrix[row] = new int [_size];
return _matrix;
}
#include <iomanip>
#include <ctime>
using namespace std;
bool random_square_matrix(int **, const size_t, const int _left = -100, int _rigth = 110);
void show_square_matrix(int **, const size_t);
void delete_matrix(int **, size_t);
int ** create_square_matrix(int **, const size_t);
bool search_more(int **, const size_t, const int);
void to_null_diagonals(int **, const size_t);
int main() {
srand(unsigned(time(NULL)));
wcout.imbue(locale("rus_rus.866"));
wcout << L"\n Введите размер квадратной матрицы: ";
size_t size;
cin >> size;
int ** matrix = NULL;
matrix = create_square_matrix(matrix, size);
if (random_square_matrix(matrix, size)) {
wcout << L"\n\tИсходная матрица: \n\n";
show_square_matrix(matrix, size);
int element = 100;
if (search_more(matrix, size, element)) {
to_null_diagonals(matrix, size);
wcout << L"\tИзменённая матрица: \n\n";
show_square_matrix(matrix, size);
} else wcout << L"\tНет таких! \n";
} else wcout << L"\aНеудалось заполнить матрицу! \n";
delete_matrix(matrix, size);
matrix = NULL;
cin.get(); cin.get();
}
inline bool search_more(int ** _matrix, const size_t _size, const int _element) {
for (size_t row = 0; row < _size; row++) for (size_t col = 0; col < _size; col++) if (_matrix[row][col] > _element) return true;
return false;
}
inline void to_null_diagonals(int ** _matrix, const size_t _size) {
size_t m = _size - 1;
for (size_t n = 0; n < _size; n++) {
_matrix[n][n] = 0;
_matrix[m - n][n] = 0;
}
}
inline bool random_square_matrix(int ** _matrix, const size_t _size, const int _left, int _rigth) {
if (_left >= _rigth) return false;
if (_left < 0 && _rigth >= 0) _rigth += abs(_left);
else if (_left < 0 && _rigth < 0) _rigth = abs(_left) - abs(_rigth);
else if (_left >= 0 && _rigth > 0) _rigth -= _left;
for (size_t row = 0; row < _size; row++) for (size_t col = 0; col < _size; col++) _matrix[row][col] = rand() % _rigth + _left;
return true;
}
inline void show_square_matrix(int ** _matrix, const size_t _size) {
if (_size) for (size_t row = 0; row < _size; row++, cout << endl << endl) for (size_t col = 0; col < _size; col++) cout << setw(5) << _matrix[row][col];
else wcout << L"Нет данных для отображения! \n";
}
inline void delete_matrix(int ** _matrix, size_t _rows) {
for (size_t row = 0; row < _rows; row++) delete[] _matrix[row];
delete[] _matrix;
}
inline int ** create_square_matrix(int ** _matrix, const size_t _size) {
_matrix = new int * [_size];
for (size_t row = 0; row < _size; row++) _matrix[row] = new int [_size];
return _matrix;
}
50 рублей
Похожие вопросы
- Написать в С++.В заданной матрице A[1:N,1:M] поменять местами следующие два элемента:
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .
- дана матрица а размерности n на m. Найти максимальный элемент в каждом столбце. Помогите пожалуйста решить. На языке C++
- Нужен код программы для Осуществления циклического сдвига элементов прямоугольной матрицы на n элементов вправо в с#
- Составьте программу, отыскивающую наибольший элемент массива A(N) из числа принадлежащим интервалу {min,(min+max\2))
- В матрице А (m, n) (m<=5, n<=7)найти произведение элементов столбика, в котором находится максимальный элемент.
- Упорядочить по возрастанию элементы каждой строки матрицы размером n х n.
- как решить? Найти сумму элементов прямоугольной матрицы X(n,m), находящихся по периметру этой матрицы. язык: С++
- Дана матрица размером n x m. Найти наибольший положительный и наименьший отрицательный элементы матрицы.
- В квадратном рандомном массиве посчитать сумму элементов главной диагонали и произведение элементов побочной диагонали.