PDA

Просмотр полной версии : С++ задача. срочно.



P1ece
30.03.2006, 01:04
как создать функцию, позволяющую удалять блок элементов, начиная с произвольного индекса массива?

Euiclid
30.03.2006, 02:04
// короче я сделал со статическим массивом чтобы принцып показать , вроде все наглядно. (ошибки не исключены)

#include <iostream.h>

#define ARRAY_SIZE 10

//---
void DeleteOne(int *PArray, int & CurSize, int index);
void PrintArray(int *PArray, int & CurSize);
bool DeleteInterval(int *PArray, int & CurSize, int index1, int index2);
//---
int main(int argc, char argv[])
{
int array[ARRAY_SIZE] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

int size = ARRAY_SIZE;

//DeleteOne(array, size, 5);

DeleteInterval(array, size, 3,8);
PrintArray(array, size);


return 0;
}
//---
void DeleteOne(int *PArray, int & CurSize, int index)
{
for(int i=index;i<=CurSize-1;i++)
{
PArray[i]=PArray[i+1];
}

CurSize--;
}
//---
void PrintArray(int *PArray, int & CurSize)
{
for(int i=0;i<=CurSize-1;i++)
{
cout<<PArray[i]<<endl;
}
}
//---
bool DeleteInterval(int *PArray, int & CurSize, int index1, int index2)
{
if(index1 > index2)
return false;

if( index2 > CurSize-1)
return false;

for(int i=index1;i<=index2;i++)
{
DeleteOne(PArray,CurSize,index1);
}

return true;
}
//---