Сравнить две матрицы, одинаковые соответствующие элементы заменить на 1 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здраствуйте, такое задание: Сравнить две матрицы, одинаковые соответствующие элементы заменить на 1. Помогите решить, может смогу разобраться по готовому коду. Спасибо

Решение задачи: «Сравнить две матрицы, одинаковые соответствующие элементы заменить на 1»

textual
Листинг программы
#include <iostream>
 
#define MAX_N 100
#define MAX_M 100
 
using namespace std;
 
void Output(int[MAX_N][MAX_M], int n, int m);
 
void main()
{
    setlocale(LC_ALL,"Russian");
 
    int a[MAX_N][MAX_M];
    int b[MAX_N][MAX_M];
 
    int n, m;
 
    while(true)
    {
        printf("Введите количество строк\n");
        scanf_s("%o", &n);
 
        printf("Введите количество столбцов\n");
        scanf_s("%o", &m);
        
        if (n > 100 || m > 100)
        {
            printf("\nОдин или два размера матрицы не верны!\nПопробуйте еще раз!");
        }
        else
        {
            break;
        }
    }
 
    printf("Введите числа матрицы A\n");
    for (int i = 0; i < n; i++) //переключение по строкам
    {
        for (int j = 0; j < m; j++)// переключение по столбцам
        {
            scanf_s("%o", &a[i][j]);
        }
    }
 
    printf("Введите числа матрицы B\n");
    for (int i = 0; i < n; i++) //переключение по строкам
    {
        for (int j = 0; j < m; j++)// переключение по столбцам
        {
            scanf_s("%o", &b[i][j]);
        }
    }
 
    printf("До изменения\n");
    Output(a, n, m);
    printf("\n");
    Output(b, n, m);
    printf("\n");
    printf("\n");
 
    for (int i = 0; i < n; i++) //переключение по строкам
    {
        for (int j = 0; j < m; j++)// переключение по столбцам
        {
            if (a[i][j] == b[i][j])
            {
                a[i][j] = b[i][j] = 1;
            }
        }
    }
 
    printf("После изменения\n");
    Output(a, n, m);
    printf("\n");
    Output(b, n, m);
    printf("\n");
 
    system("pause");
}
 
void Output(int a[MAX_N][MAX_M], int n, int m)
{
    for (int i = 0; i < n; i++) //переключение по строкам
    {
        for (int j = 0; j < m; j++)// переключение по столбцам
        {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }

Объяснение кода листинга программы

В этом коде:

  1. Объявлены две матрицы a и b типа int размером MAX_N на MAX_M.
  2. В цикле while запрашивается ввод количества строк и столбцов для матриц a и b.
  3. Если количество строк или столбцов превышает 100, выводится сообщение об ошибке и цикл продолжается.
  4. Ввод чисел для матрицы a и b происходит в цикле: для каждой строки вводится каждое значение в столбец.
  5. Выводится содержимое матриц a и b.
  6. В цикле происходит сравнение элементов матриц a и b, и при совпадении значений заменяются на 1.
  7. Выводится измененное содержимое матриц a и b.
  8. В конце программы выводится сообщение После изменения и снова выводится содержимое матриц a и b.
  9. Программа завершается с помощью функции system(pause).
  10. Функция Output выводит содержимое матрицы на экран, переключаясь по строкам и столбцам. Коды функций:
    • main: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
    • Output: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы