drakon803
16.10.2008 - 21:16
Помогите с решением задачи.
Даны 2 целочисленных массива.Первый 1,2,2,3,4,5,5 и второй 0,2,3,5.Найти элементы,входящие как в первый ,так и во второй массив,но без повторов и вывести их на экран в виде третьего массива.
вот текст проги,но кроме 2,она никакой элемент больше не выводит.
int a[7]={1,2,2,3,4,5,5};
int b[4]={0,2,3,5};
int c;
for (int j=0;j<7;j=j+1)
{
for (int i=0;i<4;i=i+1)
if (a[j]==b[i])
{
c[x]=a[j];
cout << c[x++]<< '\n';
}
}
Сначало из массивов формируется третий с одинаковыми элементами,затем удаляются повторяющиеся.Удаление одинаковых элементов оформляется через булеву переменную,но как???-не знаю.
Цитата | Quote(drakon803 @ 16.10.2008 - 22:19)
int a[7]={1,2,2,3,4,5,5};
int b[4]={0,2,3,5};
int c;for (int j=0;j<7;j=j+1)
{
for (int i=0;i<4;i=i+1)
if (a[j]==b[i])
{
c[x]=a[j];
cout <<
c[x++]<< '\n';
}
}
Что это вообще такое?
Проверяй:
Code
#include <iostream>
using namespace std;
int main()
{
int array_1[7]={1,2,2,3,4,5,5};
int array_2[4]={0,2,3,5};
int array_3[4]={0};
int c=0;
bool flag=true;
bool flag2=true;
for (int a=0; a<7; a++)
{
for (int b=0; b<4; b++)
{
if(array_1[a]==array_2[b])
{
if(flag2)
{
array_3[c]=array_2[b];
flag2=false;
c++;
continue;
}
for(int f=0; f<c; f++)
{
if(array_3[f]==array_2[b])
{
flag=false;
break;
}
}
if(flag)
{
array_3[c]=array_2[b];
c++;
}
flag=true;
}
}
}
for (int d=0; d<c; d++)
cout<<array_3[d]<<' ';
cout<<endl;
return 0;
}
Добавлено:Цитата | Quote(drakon803 @ 16.10.2008 - 22:19)
Сначало из массивов формируется третий с одинаковыми элементами,затем удаляются повторяющиеся.
У меня повторяющиеся элементы удаляются во время заполнения третьего массива. Т.е. я сразу проверяю, ыбл уже такой элемент или нет и, если нет, то заношу в массив.