|
Задача 17.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Условие задачи
Заданы 2 двумерных массива. Выясните можно ли переставить строки первого массива так,чтобы получить второй массив.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Алгоритм работы
Идет построчное сравнение массивов,каждая строка первого массива сравнивается со всеми строками второго.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Листинг программы
-
#include
#include
#include
#include
void main()
{
int a[100][100],b[100][100],d,i,j,kol,v,t,n,n1,m,m1,k;
cout<<"vvedite kol-vo el v 1 massive"<>n;
cin>>m;
cout<<"vvedite kol-vo el vo 2 massive"<>n1;
cin>>m1;
for (i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
cout<<"vvedite el-ti 1 massiva"<>d;
a[i][j]=d;
}
}
for(i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
cout<<a[i][j]<<" ";}
cout<<endl;
}
for (i=0;i<n1;i++)
{
for(j=0;j<m1;j++)
{
cout<<"vvedite el-ti 2 massiva"<>d;
b[i][j]=d;
}
}
for(i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
cout<<b[i][j]<<" ";}
cout<<endl;
}
i=0;
k=0;
v=0;
while(i<n)
{
k=0;
t=0;
kol=0;
while ((k<n1)&&(t==0))
{
for(j=0;j<m;j++)
{
if (a[i][j]==b[k][j])
{
kol=kol++;}}
if(kol==n)
{
t=1;
}
k=k++;
}
if (t==1)
{
v=v++;
}
i=i++;
}
if (v==n)
{ cout<<"mogno"<<endl;;}
else {cout<<"net"<<endl;;}
}
|
-
#include
#include
#include
#include
int pr(int i,int n, int m,int a[100][100],int b[100][100]);
void main()
{
int a[100][100],b[100][100],d,i,j,kol,t,n,n1,m,m1,k,v1;
cout<<"vvedite kol-vo el v massive"<>n;
cin>>m;
for (i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
cout<<"vvedite el-ti 1 massiva"<>d;
a[i][j]=d;
}
}
for(i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
for (i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
cout<<"vvedite el-ti 2 massiva"<>d;
b[i][j]=d;
}
}
for(i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
cout<<b[i][j]<<" ";
}
cout<<endl;
}
i=0;
//v=0;
v1=pr(i,n,m,a,b);cout<<v1;
if (v1==n)
{cout<<"mogno"<<endl;}
else {cout<<"net"<<endl;}
}
int pr(int i,int n, int m,int a[100][100],int b[100][100])
{
int k,kol,j,t,v;
k=0;
t=0 ;
//v=0;
if(i<n)
{
while ((k<n)&&(!t))
{
kol=0;
for(j=0;j<m;j++)
{
if (a[i][j]==b[k][j])
{
kol++;
}
}
if(kol==m)
{
t = 1;
}
k++;
}
i++;
if (t==1)
{
v=pr(i,n,m,a,b)+1;
}
else v=pr(i,n,m,a,b);
}
else v=0;
return v;
}
|
Условие задачи Алгоритм работы Листинг программы Набор тестов
Набор тестов к программе
1.
первый массив
1 2
4 5
второй массив
4 5
1 2
ответ -можно
2.
первый массив
1 4 7
2 5 8
3 6 9
второй массив
1 4 7
3 6 9
2 5 8
ответ — можно
3.
первый массив
1 2
2 3
второй массив
2 6
1 2
ответ - нет
Автор решения: Федотова Елена
группа: 121Ми
год: 2008
Автор задачи: Гладков В.П. Курс лабораторных работ по программированию: Учебное пособие для специальностей электротехнического факультета ПГТУ/ Перм.гос.техн.ун-т.-Пермь,1998.-153с.
|