В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
nazuli
nazuli
03.02.2020 03:16 •  Информатика

Дана целочисленная квадратная матрица порядка n. найти номера строк: а) все элементы которых четны; б) в которых нет ни одного нулевого элемента. приравнять к нулю все элементы на главной и побочной диагоналях. (с++)

Показать ответ
Ответ:
Kojjd
Kojjd
07.10.2020 15:19
#include <iostream>
#include <time.h>
#include <stdlib.h>

using namespace std;
int main() {
    setlocale(LC_ALL, "Russian");
    int n;
    bool notEvenOrNulls = false;
    cout << "n = ";
    cin >> n;
    int even, nulls;
    int **A = new int*[n];
    for (int i = 0; i < n; i++)
        A[i] = new int[n];
    
    //Заполнение матрицы
    cout << " *** Исходный массив *** " << endl;
    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 << "№ строк со всеми четными = ";
    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 << " ";
            notEvenOrNulls = true;
        }
    }
    if (notEvenOrNulls == false) cout << "Таких строк нет";
    cout << endl;
    notEvenOrNulls = false;

    //Поиск номеров строк без нулей
    cout << "№ строк без нулей = ";
    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 << " ";
            notEvenOrNulls = true;
        }
    }
    if (notEvenOrNulls == false) cout << "Таких строк нет";
    cout << endl;

    //Замена диагоналей на нули
    cout << " *** Измененный массив *** " << endl;
    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;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота