Red de conocimiento informático - Aprendizaje de código fuente - Problemas de programación y continuidad del arreglo

Problemas de programación y continuidad del arreglo

# incluir & ltstdio.h & gt

# 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.