C++Builderによる配列の並べ替えと挿入操作のセット


//---------------------------------------------------------------------------

#pragma hdrstop

#include 
#include 

//---------------------------------------------------------------------------

#pragma argsused
#define DATATYPE int
#define MAX 128

using namespace std;

typedef struct
{
	DATATYPE mArray[MAX];
	int mlen;
}Array;

Array myArray;

void ReadArray(Array *);
void PrintArray(Array *);
void SortArray(Array *);
void DeleteElem(Array *, int);
void InsertElem(Array *, int);

int _tmain(int argc, _TCHAR* argv[])
{
	int deleteelm, insertelem;

	ReadArray(&myArray);
	PrintArray(&myArray);

	SortArray(&myArray);
	PrintArray(&myArray);

	cout <> deleteelm;
	DeleteElem(&myArray, deleteelm);
	PrintArray(&myArray);

	cout <> insertelem;
	InsertElem(&myArray, insertelem);
	PrintArray(&myArray);


	system("PAUSE");
	return 0;
}
//---------------------------------------------------------------------------
void ReadArray(Array * pBegin)  //    
{
	cout <> pBegin->mlen;
	for(int i = 0; i mlen; i++)
	{
		cout <> pBegin->mArray[i];
	}
}

void PrintArray(Array * pBegin)  //    
{
	for(int i = 0; i mlen; i++)
	{
		cout  <mArray[i] <mlen; i++){
		if(pBegin->mArray[i] mArray[i-1])
		{
            int j= i-1;
			int x = pBegin->mArray[i];
			pBegin->mArray[i] = pBegin->mArray[i-1];
			while(x mArray[j])
			{
				pBegin->mArray[j+1] = pBegin->mArray[j];
				j--;
            }
			pBegin->mArray[j+1] = x;
		}
	}

}

void DeleteElem(Array * pBegin, int elem)  //    
{
	for(int i = 0; i mlen; i++)
	{
		if (pBegin->mArray[i] == elem)
		{
			  for (int j = i; j mlen; j++)
			  {
				 pBegin->mArray[j] =  pBegin->mArray[j+1];
			  }
			pBegin->mlen--;
		}
	}
}

void InsertElem(Array * pBegin, int elem)//    
{
	pBegin->mArray[pBegin->mlen] = elem;
	pBegin->mlen++;
	SortArray(pBegin);
}