Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Kinamox en 13 Abril 2018, 06:35 am



Título: Estructura
Publicado por: Kinamox en 13 Abril 2018, 06:35 am
Que tal amigos?, necesito ayuda con este método de ordenamiento (burbuja), he averiguado por todos los medios y no he podido solucionar mi inconveniente, que es mostrar por pantalla los valores ingresados ordenados por el método antes dicho.

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.

 ;D  Saludos :silbar:


Título: Re: Estructura
Publicado por: MAFUS en 13 Abril 2018, 07:09 am
Unas cuantas cosas mal pero la más importante
Si arreglo es una estructura después no la trates como un simple entero. Cómo arreglar eso: elimina la estructura y haz un array de ints ya que el programa está diseñado para ello, así ahorrarás tiempo.