Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > MASSIV


Автор: VIKA 22.12.2005, 22:36
Даны два массива : А[n] и B[m]. Необходимо создать третий массив, в котором нужно собрать:
Элементы обоих массивов;
Общие элементы двух массивов;
Элементы массива A, которые не включаются в B;
Элементы массива B, которые не включаются в A;
Элементы массивов A и B, коотрые не являются общими дял них (то есть объединение результатов двух предыдущих вариантов).



ПОМОГИТЕ ДОВЕСТИ ПРОГУ ДО РАБОЧЕГО СОСТОЯНИЯ. ПОЖАЛУСТА!
Код

// Элементы обоих массивов
type C0=new type[n+m]; // вместо type подставить свой тип
C0=A;
C0+=n*type_length;
C0=B;

//Элементы массива A, которые не включаются в B; 
type C1=new type[n+m];
int ic=0;
for(int i=0; i<n; i++){
  for(int j=0; j<m; j++){
    if(A[i]!=B[j]){
      C1[ic]=A[i];
      ic++;
  }
}

//Элементы массива B, которые не включаются в A; 
type C2=new type[n+m];
int icc=0;
for(i=0; i<m; i++){
  for(int j=0; j<n; j++){
    if(B[i]!=A[j]){
      C2[icc]=B[i];
      icc++;
  }
}

//Элементы массивов A и B, коотрые не являются общими дял них
type C3=new type[n+m];
int ix=0;
for(i=0; i<ic; i++){
  for(int j=0; j<icc; j++){
    if(C1[i]!=C2[j]){
      C3[ix]=C1[i];
      ix++;
  }
}


Автор: c1bby 22.12.2005, 22:40
хм..я конечно не программист,но это вроде бы всё сделать в одном 3-ем массиве не удасстся.Или надо будет удалять массив после просмотра.Тоесть нада будет создать стоко массивов сколько перед тобой поставлено задач,тоесть например Элементы обоих массивов-1 массив,Общие элементы двух массивов-2 массив.
Или просто организовать вывод данных нужных без создания дополнительных массивов,ведь если ты не хочеь в дальнейшем с ними ничего делать,то зачем ещё массив создавать?Просто вывести и забыть о них smile

Автор: Romikgy 23.12.2005, 12:00
Имхо у тя сравнение неправильное
Код

type C1=new type[n+m];
int ic=0;
int b;
for(int i=0; i<n; i++)
{
b=0;
  for(int j=0; j<m; j++)
{
    if(A[i]=B[j])
{
  b=1;    
}
if (b) 
{
C1[ic]=A[i];
      ic++;
}

}
}

И так далее

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)