Дана целочисленная квадратная матрица порядка n. Найти номера строк: а) все элементы которых четны; б) в которых нет ни одного нулевого элемента. Приравнять к нулю все элементы на главной и побочной диагоналях. (С++)
#include #include #include using namespace std; int main() { setlocale(LC_ALL, "Russian"); int n; bool notEvenOrNulls = false; cout << "n = ";<br> cin >> n; int even, nulls; int **A = new int*[n]; for (int i = 0; i < n; i++) A[i] = new int[n]; //Заполнение матрицы cout << " *** Исходный массив *** " << endl;<br> srand(time(NULL)); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { A[i][j] = rand() % 10; printf("%4d", A[i][j]); } printf("\n"); } //Поиск номеров строк со всеми четными cout << "№ строк со всеми четными = ";<br> for (int i = 0; i < n; i++) { even = 0; for (int j = 0; j < n; j++) if (A[i][j] % 2 == 0) even++; if (even == n) { cout << i + 1 << " ";<br> notEvenOrNulls = true; } } if (notEvenOrNulls == false) cout << "Таких строк нет";<br> cout << endl;<br> notEvenOrNulls = false; //Поиск номеров строк без нулей cout << "№ строк без нулей = ";<br> for (int i = 0; i < n; i++) { nulls = 0; for (int j = 0; j < n; j++) if (A[i][j] == 0) nulls++; if (nulls == 0) { cout << i + 1 << " ";<br> notEvenOrNulls = true; } } if (notEvenOrNulls == false) cout << "Таких строк нет";<br> cout << endl;<br> //Замена диагоналей на нули cout << " *** Измененный массив *** " << endl;<br> for (int i = 0; i < n; i++) { A[i][n - 1 - i] = 0; for (int j = 0; j < n; j++) if (i == j) A[i][j] = 0; } //Вывод матрицы for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) printf("%4d", A[i][j]); printf("\n"); } system("pause"); return 0; }