Форум программистов, компьютерный форум CyberForum.ru

Поиск матрицы в матрице - C++

Восстановить пароль Регистрация
 
Yalokin
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 2
21.10.2013, 00:02     Поиск матрицы в матрице #1
Помогите, пожалуйста, исправить часть программы.
Задание звучит следующим образом: "В матрице MxM, заполненной случайными числами, найти координаты (верхнего левого угла) матрицы KxK (меньшего размера), заданной пользователем". Проблемы возникают на этапе поиска.

#include <math.h>
#include <stdlib.h>
#include <iostream>

using namespace std;

#define m 10
#define k 2

int main () {

/*Zapolnyaem matricu MxM sluchainimi chislami i raspechativaem */
cout << "Ishodnaya matrica:\n" << flush;
int a[m][m];
for(int i1=0; i1<m; i1++){
for(int j1=0; j1<m; j1++){
a[i1][j1]=rand()%10;
cout << a[i1][j1] << ' ' << flush;
}
cout << "\n" << flush;
}

cout << "\n" << flush;

/*Zaprashivaem matricu KxK u polzovatelya*/
cout << "Vvedite znacheniya matrici "<< k <<"x"<< k <<"\n"<< flush;
int b[k][k];
for(int i2=0; i2<k; i2++){
for(int j2=0; j2<k; j2++){
cout << "i[" << i2 << "]j[" << j2 << "]= " << flush;
cin >> b[i2][j2];
}
}

cout << "\n" << flush;

/*Raspechyativaem matricu KxK*/
cout << "Vvedennaya vami matrica:\n"<< flush;
for(int i2=0; i2<k; i2++){
for(int j2=0; j2<k; j2++){
cout << b[i2][j2] << ' ' << flush;
}
cout << "\n" << flush;
}

cout << "\n" << flush;

/*Poisk*/
cout << "Naidennie sovpadeniya:\n" << flush;
int i3, j3;
int i4=0;
int j4=0;
int n=0;

for(int i1=0; i1<(m-k+1); i1++){ /*Perebiraem vse elementi bolshoi matrici*/
for(int j1=0; j1<(m-k+1); j1++){
if(a[i1][j1]==b[0][0]){ /*Nahodim sovpadeniya pervogo elementa malenkoi v bolshoi*/
for(i3=i1; i4<k; i3++, i4++){ /*Smotrim, sovpadaut li ostalnie*/
for(j3=j1; j4<k; j3++, j4++){
if(a[i3][j3]==b[i4][j4]) n++;
}
}
if(n>=(k*k))
cout << "Koordinati i=" << i1 <<" j=" << j1 << "\n" << flush;
}
}
}


system ("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 00:02     Поиск матрицы в матрице
Посмотрите здесь:

Поиск элементов в действительной матрице C++
C++ Поиск островов в матрице
C++ Восьмимерка: поиск вектора в матрице
Поиск в матрице C++
C++ Поиск минимального элемента в матрице
Поиск нулевых значений в матрице C++
C++ Поиск в матрице, задача
Поиск в матрице символов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FiLF
52 / 52 / 15
Регистрация: 05.09.2013
Сообщений: 1,088
22.10.2013, 06:50     Поиск матрицы в матрице #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*Poisk*/
cout << "Naidennie sovpadeniya:\n" << flush;
int i3, j3;
int i4=0;
int j4=0;
int n=0;
 
for(int i1=0; i1<(m-k+1); i1++){ /*Perebiraem vse elementi bolshoi matrici*/
for(int j1=0; j1<(m-k+1); j1++){
if(a[i1][j1]==b[0][0]){ /*Nahodim sovpadeniya pervogo elementa malenkoi v bolshoi*/
    n=0;
for(i3=0; i3<k; i3++){ /*Smotrim, sovpadaut li ostalnie*/
for(j3=00; j3<k; j3++){
if(a[i1 + i3][j1 + j3]==b[i3][j3]) n++;
}
}
if(n>=(k*k))
cout << "Koordinati i=" << i1 <<" j=" << j1 << "\n" << flush;
}
}
}
Yandex
Объявления
22.10.2013, 06:50     Поиск матрицы в матрице
Ответ Создать тему
Опции темы

Текущее время: 12:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru