Programación General > C/C++
Re: Duda con Struct
(1/1)
kurko:
Una consultita
como puedo hacer ke el programa me imprima en pantalla unos numeros almacenados en un miembro de una estructura, en orden ascendente o descendente??
me explico
tengo una estructura hecha tipo biblio llamada libro[20]
y uno de sus miembros se llama libro[20].numero, dentro de este miembro, hay 20 numero distintos de tipo float almacendos.
Necesito ke el programa los imprima ordenados en forma ascendente y/o descendente.
ayudenme porfa. y muchas gracias por toda la ayuda.
JuanK:
:lightsabre:Debes realizar una rutina que recorra la lista y la vaya ordenando, una vez hecho esto imprimes el array ordenado en un ciclo..este es un ejemplo:
#include<stdio.h>
#include<time.h>
--- Código: Text --- struct lib{ int numero;}; void ordenar(struct lib *arreglo);void imprimir(struct lib *li); int main(){ int i,menor, bandera=1;//0=ordenado struct lib libro[20]; clrscr(); //limpiar srand(time(0));//iniciar semilla aleatoria /*srand(time(0)); nos asegura que siempre genere numeros aleatorios diferentes, ya que de lo contrario siempre generaria los mismos*/ for(i=0;i<20;i++) {//se llena libro[i].numero = rand()%1001; } ordenar(libro); imprimir(libro); return 1;} //ordenamiento simple...void ordenar(struct lib *arreglo){ int i; int bandera = 1;//se parte de que esta ordenado struct lib aux; while(bandera) { i=0; bandera = 0;//se parte de desordenado while(i<20) { if(arreglo[i].numero > arreglo[i+1].numero ) { aux = arreglo[i]; arreglo[i] = arreglo[i+1]; arreglo[1+i] = aux; bandera=1; //si entra es que no esta ordenado } i++; } }} //imrpime libros void imprimir(struct lib *li){ int i=0; printf("n aL I S T A D E L I B R O Sa nn"); for(i=0;i<20;i++) { printf("Libro Nro%d: %dn",i,li[i].numero); }} el programa genera numeros aleatoriemente utiliza el metodo de ordenamiento llamado metodo de la burbuja, te recomiendo que te documentes al respecto de este metodo.
En cada funcion se pasa la estructura por referencia y no por valor.
suerte..me cuentas si tienes alguna duda.
Navegación
Ir a la versión completa