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;
}
}
#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;
}
}