Entradas populares

martes, 5 de abril de 2011

Ordenar numeros.

En esta ocasión les dejo un programita muy sencillo que sirve para ordenar números de menor a mayor haciendo uso de los populares punteros.


#include<stdio.h>
#include<conio.h>


void obtnum (int arreglnum[100]);
void ordena (int *a, int *b);/* funcion con apuntadores*/
void sacanum (int arreglnum[100]);




main()
{
    int t = 0, j = 1,ban = 0;
    int x;
    int arreglnum[100];


    printf("\n\n        **********************************************************");
    printf("\n\n                Programa para ver el uso de apuntadores.");
    printf("\n\n        **********************************************************\n\n");


    obtnum(arreglnum);


    /* ciclos while para que mande a la funcion ordena de 2 en dos*/
   while( arreglnum[t] != 999 )
     {
         while ( arreglnum[j] != 999 )
          {
              ordena(&arreglnum[t], &arreglnum[j]);/* mandamos de dos en dos a ordena*/
            ++j;
          }
          j = 0;
          ++t;
          j +=t;
     }


     /* llamamos a sacanum para que imprima los valores acomodados*/


     sacanum(arreglnum);


     getche();


     return (0);


}
/* la funcion que metera los valores al arreglo*/
void obtnum(int arreglnum[100])
{
    int x = 0;


    printf("\n\n            >> Digite numeros enteros.\n\n            >> Si desea degar de diitar numeros presione 999.\n\n");


    for( x = 0; x < 100; ++x)
    {
        scanf("%d", &arreglnum[x]);
        if (arreglnum[x] == 999)
            break;


    }


}


/* definimos la función ordena*/
void ordena (int *a, int *b)
{
    int temp;/* variable temporal*/


    if (*a > *b)
    {
        temp = *a;
        *a = *b;
        *b = temp;
    }
}


void sacanum (int arreglnum[100])
{
    int x = 0;


    putchar('\n');


    printf("\n              >>Los numeros ordenados son: \n\n");


    /* ciclo para imprimir el arreglo hasta que encuentre un 999*/
    while(  arreglnum[x] != 999 )
    {
        printf("                %10d\n", arreglnum[x]);
        ++x;
    }
}