Código:
#include <stdio.h>
typedef struct rall
{
int valor;
}dato;
dato arreglo[50];
int tamanio(int TAM);
void DigitarValor (dato arreglo[],int p);
void ordenar(int arreglo[],int p);
int main()
{
int p;
p=tamanio(p);
DigitarValor(arreglo,p);
ordenar(arreglo,p);
return 0;
}
int tamanio(int TAM)
{
printf("Introducir dimension del vector: ");
scanf("%i",&TAM);
return TAM;
}
void DigitarValor (dato arreglo[],int p)
{
int i;
for(i=0;i<p;i++){
printf("Digitar valor: ",i+1);
scanf("%i",&arreglo[i].valor);
}
}
void ordenar(int arreglo[],int p)
{
int i,j,PRO;
for(i=0; i<p; i++)
{
for(j=i+1; j<p; j++)
{
if(arreglo[j] > arreglo[j+1])
{
PRO = arreglo[j];
arreglo[j] = arreglo[j+1];
arreglo[j+1] = PRO;
}
}
}
printf("Valores ordenados: \n");
for(i=0;i<p;i++)
{
printf("%i ",arreglo[i]);
}
}
Creo que la solucion es con puntero(me ha costado un poco entenderlo) y he intentado todo lo posible para aplicarlo. Espero que alguien me ilumine en este camino. Les agradezco desde ya.

