HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 29.02.2008, 16:08
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
С нами: 10042776

Репутация: 275
По умолчанию

Код:
void sort(int* a, int* b, int* c, int size_a, int size_b)
{
	for(int i=0, j=0, k=0; k < size_a + size_b;) {
		if( a[i] > b[j] )
			c[k] = a[i++];
		else if ( a[i] < b[j] )
			c[k] = b[j++];
		else
			c[k] = a[i++], ++j;
		++k;

	}
}
 
Ответить с цитированием

  #2  
Старый 29.02.2008, 16:18
}I{ek
Новичок
Регистрация: 08.02.2008
Сообщений: 12
С нами: 9607368

Репутация: 2
По умолчанию

Во спс....
работает только при size_a = size_b
если же
size_a=4
size_b=4

снова билиберда.....

кароче, вот код
Код:
#include <iostream.h>
#include <conio.h>
void input (int a[],int n);
void output (int a[],int n);
void sort  (int a[],int b[],int c[],int n, int m);
void main ()
   {
     int n,m;
     int a[100],b[100],c[200];
     cout<<"n?" ; cin>> n;
     cout<<"m?" ; cin>> m;
     input (a,n);
     input (b,m);
     sort  (a,b,c,n,m);
     output  (c,n+m);
     getch();
    }

void input(int a[], int n)
      {
         cout<< "vvedite "<<n<<" 4isel: "<<endl ;
         for(int i=0;i<n;i++)
         cin>>a[i];
      }

void output(int a[],  int n)
       {
         for(int i=0;i<n;i++)
         cout<<a[i]<<endl;
       }
void sort ()

Последний раз редактировалось }I{ek; 29.02.2008 в 16:21..
 
Ответить с цитированием

  #3  
Старый 29.02.2008, 16:41
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
С нами: 10042776

Репутация: 275
По умолчанию

Код:
#include <iostream>
using namespace std;

void sort(int*,int*, int*, int, int);
void print(const int*, int);
void input(int*, int);

int main()
{
	int sizeN;
	int sizeM;

	cout << "Input sizeN and sizeM" << endl;

	cin >> sizeN >> sizeM;

	int* a = new int[sizeN];
	int* b = new int[sizeM];
	int* c = new int[sizeN+sizeM];

	if( ( a && b && c ) == 0 ) {
		cerr << "Not enought memory" << endl;
		return 1;
	}

	cout << "1st array : " << endl;
	input(a, sizeN);

	cout << "2d array : " << endl;
	input(b, sizeM);

	sort(a, b, c, sizeN, sizeM);

	cout << "New array : " << endl;

	print(c, sizeN + sizeM);

	delete [] a;
	delete [] b;
	delete [] c;
	
	return 0;
}

void print(const int *iptr, int size)
{
	for(int i=0; i < size; ++i)
		cout << iptr[i] << '\t';

	cout << endl;
}

void input(int *iptr, int size)
{
	cout << "Input " << size << " elements : " << endl;

	for(int i=0; i < size; ++i)
		cin >> iptr[i];
}

void sort( int* a, int* b, int* c, int size_a, int size_b)
{
	int i=0, j=0, k=0;
	for( ; i < size_a; ++i, ++k ) {
		for(; j < size_b && b[j] > a[i]; ++j,++k )
			c[k] = b[j];
		c[k] = a[i];
	}

	for( ; j < size_b; ++j, ++k )
		c[k] = b[j];
}

Последний раз редактировалось Forcer; 01.03.2008 в 00:41..
 
Ответить с цитированием

  #4  
Старый 29.02.2008, 16:41
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
С нами: 11099536

Репутация: 518
По умолчанию

Код:
    a[0]=20;
	a[1]=19;
	a[2]=16;
	a[3]=12;
	b[0]=13;
	b[1]=5;
	b[2]=4;
	int i,j,l;
	int m=4;
	int n=3;
	for(i=0,j=0,l=0;i<n;i++,l++)
	{
		for(;j<m && a[i]<b[j];j++,l++)
			c[l]=b[j];
		c[l]=a[i];
	}
	for(;j<m;j++,l++)
			c[l]=b[j];
ну это на пятерку
 
Ответить с цитированием

  #5  
Старый 29.02.2008, 16:44
}I{ek
Новичок
Регистрация: 08.02.2008
Сообщений: 12
С нами: 9607368

Репутация: 2
По умолчанию

неа....тож самое....
 
Ответить с цитированием

  #6  
Старый 29.02.2008, 16:50
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
С нами: 10042776

Репутация: 275
По умолчанию

мой вариант посмотри на предыдущей странице. там полностью прога написана. всё работает.
 
Ответить с цитированием

  #7  
Старый 29.02.2008, 17:04
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
С нами: 11099536

Репутация: 518
По умолчанию

2 Forcer подебагь с разными рядами и сам поймешь!
 
Ответить с цитированием

  #8  
Старый 29.02.2008, 18:53
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
С нами: 10042776

Репутация: 275
По умолчанию

Извиняюсь. Первоначальный вариант компилировал в студии 2005 - в ней всё нормально было. MinGW "указал" на явную ошибку. Изменил код. Надеюсь, я буду прощён! ))
 
Ответить с цитированием

  #9  
Старый 29.02.2008, 19:31
}I{ek
Новичок
Регистрация: 08.02.2008
Сообщений: 12
С нами: 9607368

Репутация: 2
По умолчанию

кк код в студию плз!
 
Ответить с цитированием

  #10  
Старый 29.02.2008, 19:33
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
С нами: 10042776

Репутация: 275
По умолчанию

}I{ek
Я на предыдущей странице заменил код.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.