21.01.2013, 00:54. Просмотров 350. Ответов 1
Помогите.
Вот задачка:
Заданные две квадратные матрицы одинакового размера - А и В. Переписать в одномерный массив R те элементы матриц А и В, имеющие одинаковые индексы и значения. В полученном массиве найти первый (а) и последний (b), индексы заданного пользователем натурального числа s. Если число s, встречается в массиве R не менее двух раз, заменить этим числом элемент матрицы с индексами (a mod N; b mod N), если нет - элемент матрицы B с индексами (b mod N; a mod N). N - количество строк и столбцов в матрицах А и В.
Я разделил ее на 2 части:
1) Заданные две квадратные матрицы одинакового размера - А и В. Переписать в одномерный массив R те элементы матриц А и В, имеющие одинаковые индексы и значения.
2) В полученном массиве найти первый (а) и последний (b), индексы заданного пользователем натурального числа s. Если число s, встречается в массиве R не менее двух раз, заменить этим числом элемент матрицы с индексами (a mod N; b mod N), если нет - элемент матрицы B с индексами (b mod N; a mod N). N - количество строк и столбцов в матрицах А и В.
Первую часть я понял как сделать, а вторую не пойму...
Вот первая часть:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| #include <iostream>
#include <time.h>
#include <conio.h>
using namespace std;
int main()
{
srand(time(NULL));
int a[50][50];
int b[50][50];
int r[50]={0};
int n,i,j,k = 0;
cout<<"vvedit kilkist elementov n= " ;
cin>>n;
for (i=1; i<=n; ++i){
for (j=1; j<=n; ++j){
a[i][j] = rand()%100;
cout<<a[i][j]<<" ";
}
cout<<endl;}
cout<<"=================="<<'\n';
for (i=1; i<=n; ++i){
for (j=1; j<=n; ++j){
b[i][j] = rand()%100;
cout<<b[i][j]<<" ";
}
cout<<endl;}
for (i=1; i<=n; ++i){
for (j=1; j<=n; ++j){
if (a[i][j] == b[i][j])
{
r[k++]=a[i][j];
}
}}
for (i=1; i<k; ++i) cout<<"r["<<i<<"]="<<r[i]<<'\n';
getch();
return 0;
} |
|
Добавлено через 11 часов 8 минут
...