Problemas de programación y continuidad del arreglo
# incluir & ltstdlib.h & gt
int compear(void *, void *);
int delEle( int *, int, int);
int main(int argc, char *argv[])
{
int len = 10;
int arrs[10] = {4, 1, 5, 2, 7, 3, 9, 0, 6, 8};
int I; >qsort (arrs, 10, sizeof(int), compe ar);
for(I = 0; i<10;i++)
printf("%d ", arrs[I ]);
printf(" \ n ");
len = delEle(arrs, 2, len); //Eliminar 2
printf(" \n ");
len = delEle(arrs, 11, len); //Elimino 11 pero no existe
rdel(arrs, 2, len, 0);
p>Retorno 1;
}
int comper(void * a, void *b)
{
int *ma = (int *)a, *MB = (int *)b;
if (* ma & gt; *mb)
Devuelve 1;
if(*ma == *mb)
Retorno 0;
if(* ma & lt; *mb)
retorno -1;
}
int delEle(int *arr, int ele, int len)
{
int i, j , encontrado = 0 , mlen = len
for(I = 0;i & ltleni++){
if(arr[i] == ele){
for(j = I;j & ltlen-1;j++){
arr[j]= arr[j+1];
}
Encontrado = 1;
mlen-;
}
}
if(buscar == 0)
printf(" ¡El elemento %d no existe! \n",ele);
for(I = 0;i<mleni++)
printf("%d ", arr[I]);
Regresar mlen//Devuelve la longitud de la matriz
}
//Eliminación recursiva
Intrdel (int * ar, intele, intlen, intflag)//flag Es una señal de si el elemento se ha eliminado antes de
{
int tmp
If(len == 1)//Fin de la matriz
return * ar
If(*ar == ele || flag == 1){// Se descubre que todos los elementos después del elemento eliminado o del elemento eliminado previamente se adelantaron uno.
tmp = * ar
*ar = rdel(ar + 1, ele, len - 1, 1);
Return tmp
<); p>}De lo contrario{rdel(ar + 1, ele, len - 1, 0); //Saltar el frente sin eliminar
}
Recursión Es áspero y no tiene límites de control.
Puede haber algunos problemas al eliminar el último elemento; modifíquelo usted mismo.