С++ задача. срочно.

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
P1ece
Сообщения: 33
Зарегистрирован: 04 мар 2006, 05:35

30 мар 2006, 01:04

как создать функцию, позволяющую удалять блок элементов, начиная с произвольного индекса массива?
Euiclid
Сообщения: 1
Зарегистрирован: 30 мар 2006, 01:30
Откуда: от туда
Контактная информация:

30 мар 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=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;
}
//---
Ответить