![apachar ojo](http://static.forosdelweb.com/fdwtheme/images/smilies/wink.png)
short sw;
do
{
for(nuevo=primero,sw=0;nuevo->sig!=0;nuevo=nuevo->sig)
{
ultimo=nuevo->sig;
if(nuevo->n > ultimo->n)
{
aux=ultimo->n;
ultimo->n=aux;
sw=1;
}
}
}
while(sw==1);
}
| |||
Ordenación Esto va de ordenación de una lista (siguiendo con el tema de mi post anterior, qué le vamos a hacer ![]() short sw; do { for(nuevo=primero,sw=0;nuevo->sig!=0;nuevo=nuevo->sig) { ultimo=nuevo->sig; if(nuevo->n > ultimo->n) { aux=ultimo->n; ultimo->n=aux; sw=1; } } } while(sw==1); } |
| |||
Ok, ahí va el programa entero :-) #include<stdio.h> #include<conio.h> #include<alloc.h> visualizar(); clasificar(); struct nodo { short n; struct nodo *sig; }; short aux; struct nodo *nuevo, *ultimo, *primero=0; void main(void) { clrscr(); printf("Introducir numero o 0 para terminar: "); scanf("%d",&aux); while(aux!=0) { nuevo=(struct nodo*)malloc(sizeof(struct nodo)); nuevo->n=aux; nuevo->sig=0; if(primero==0) { primero=nuevo; ultimo=nuevo; } else { ultimo->sig=nuevo; ultimo=nuevo; } clrscr(); printf("Introducir numero o 0 para terminar: "); scanf("%d",&aux); } clasificar(); visualizar(); } clasificar() { short sw; do { for(nuevo=primero,sw=0;nuevo->sig!=0;nuevo=nuevo->sig) { ultimo=nuevo->sig; if(nuevo->n > ultimo->n) { aux=ultimo->n; ultimo->n=aux; sw=1; } } } while(sw==1); } visualizar() { for(nuevo=primero;nuevo!=0;nuevo=ultimo) { printf("%d ",nuevo->n); ultimo=nuevo->sig; free(nuevo); } } |
| ||||
A ver que tal asi, en la funcion clasificacion en vez de esto:
Código:
esto:aux=ultimo->n; ultimo->n=aux;
Código:
aux = ultimo->n; ultimo->n = nuevo->n; nuevo->n = aux;
__________________ ¡Peron cumple, Evita dignifica! VIVA PERON CARAJO |