Hacer un programa o algoritmo.
Se desea realizar un algoritmo que realice las siguientes tareas:
- Leer una lista de números enteros
- Visualizar dichos números
- El algoritmo deberá pedir si yo deseo ordenar en sentido decreciente o creciente (burbuja)
- Entrada: 10, 15, 20, 8
- Salida: decreciente 20 15 10 8
#include <stdio.h> int main(){ int cont=0,w=0,i,s,k,tem,c,num; printf("ingresa longitud del arreglo\n"); scanf("%d",&c); int N[c]; while(cont!=c){ printf("Ingresa numero\n"); scanf("%d",&num); N[cont]=num; cont++; } for(i=0;i<c;i++){ printf("%d ",N[i]); } printf("\nSeleccione: \n"); printf("(1) Orden Decreciente\n"); printf("(2) Orden Creciente\n"); scanf("%d",&s); if(s==1){ while(w!=(c-1)){ w=0; for (k=0;k<(c-1);k++){ if(N[k]>=N[k+1]){ w=w+1; }else{ tem=N[k]; N[k]=N[k+1]; N[k+1]=tem; } } } for(i=0;i<c;i++){ printf("%d ",N[i]); } }else{ while(w!=(c-1)){ w=0; for (k=0;k<(c-1);k++){ if(N[k]<=N[k+1]){ w=w+1; }else{ tem=N[k]; N[k]=N[k+1]; N[k+1]=tem; } } } for(i=0;i<c;i++){ printf("%d ",N[i]); } } return 0; }
4 comentarios:
Es un programa con una claridad y desarrollo admirables, pero cabe subrayar que se podemos ahorrarnos los "else" en las condiciones de ordenamiento y utilizar solo los if para cada caso. Cambiando los <= por >= y viceversa en las dos condiciones.
Un saludo!
Hola, muchas gracias, me has salvado, no podía realizar lo. Espero que estes bien y saludos.
este código me sirvió de mucho .. te descordera por la ayuda brindada
Creo que es muy deficiente, se podría hacer todo eso con menos variables y ocupando recursividad pero igual gracias por la claridad del código.
Publicar un comentario