R
Rivass
Задача:
Вводятся две квадратные матрицы одинакового размера, найти их композицию.
Примечание. Композиция находится следующим способом:
- Сравнивается первый элемент первой строки первой матрицы с первым элементом первого столбца второй матрицы,выбирается наименьший, дальше второй со вторым и так далее, из всех наименьших одной строки и столбца выбирается наибольший элемент (ВНИМАНИЕ! одна строка первой матрицы сравнивается со всеми столбцами второй матрицы), он и будет первым элементом новой матрицы. Цикл таким образом должен создать новую матрицу, такого же размера.
Мой код находит элементы, но не выводит их, не могу додуматься как... Кто сможет разобраться пожалуйста подскажите...
Попытался изобразить алгоритм схематично на бумаге)
Вводятся две квадратные матрицы одинакового размера, найти их композицию.
Примечание. Композиция находится следующим способом:
- Сравнивается первый элемент первой строки первой матрицы с первым элементом первого столбца второй матрицы,выбирается наименьший, дальше второй со вторым и так далее, из всех наименьших одной строки и столбца выбирается наибольший элемент (ВНИМАНИЕ! одна строка первой матрицы сравнивается со всеми столбцами второй матрицы), он и будет первым элементом новой матрицы. Цикл таким образом должен создать новую матрицу, такого же размера.
Мой код находит элементы, но не выводит их, не могу додуматься как... Кто сможет разобраться пожалуйста подскажите...
C++:
#include<stdio.h>
int main()
{
int n,m;
scanf_s("%d%d",&n,&m);
int a[50][50];
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
scanf_s("%d",&a[i][j]); //ввод первой матрицы
int b[50][50];
for (int f=0; f<n; f++)
for (int g=0; g<m; g++)
scanf_s("%d",&a[f][g]); //ввод второй матрицы
int c[50][50];
int i=0,j=0,k=0,g,z;
for(g=0;j<n && k<n;i=0,g=0,j++,k++)
{
for(;i<n && g<n;i++,g++)
{
do{
if(a[i][j]>=b[k][g]) // Сначала сравнивается первый элемент с первым
z=b[k][g];
else
z=a[i][g];}
while(i==0);
if(a[i][j]>=b[k][g] && b[k][g]<=z) // Находим наименьший и сравниваем с предыдущим наименьшим
z=a[i][j];
if(a[i][j]<=b[k][g] && a[i][j]<=z)
z=b[k][g];
c[i][j]=z;
}
for (int i=0; i<n; i++)
for (int j=0; j<m; j++) // Вывод матрицы, но неправельный походу...
printf_s("%d",c[i][j]);
}
}
Попытался изобразить алгоритм схематично на бумаге)