Страница 1 из 1
С++ задача. срочно.
Добавлено: 30 мар 2006, 01:04
P1ece
как создать функцию, позволяющую удалять блок элементов, начиная с произвольного индекса массива?
Добавлено: 30 мар 2006, 02:04
Euiclid
// короче я сделал со статическим массивом чтобы принцып показать , вроде все наглядно. (ошибки не исключены)
#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=PArray[i+1];
}
CurSize--;
}
//---
void PrintArray(int *PArray, int & CurSize)
{
for(int i=0;i<=CurSize-1;i++)
{
cout<<PArray<<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;
}
//---