Показать сообщение отдельно

  #258  
Старый 29.02.2008, 16:41
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме:
3578578

Репутация: 275
Отправить сообщение для Forcer с помощью ICQ
По умолчанию

Код:
#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..