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