Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ordenacion Burbuja en C

Estas en el tema de Ordenacion Burbuja en C en el foro de C/C++ en Foros del Web. Hola a todos Es mi primer mensaje, espero no hacerlo mal xD Bueno, ahi va el problema que me ha surgido: Me han mandado hacer ...
  #1 (permalink)  
Antiguo 07/03/2009, 11:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Ordenacion Burbuja en C

Hola a todos
Es mi primer mensaje, espero no hacerlo mal xD
Bueno, ahi va el problema que me ha surgido:
Me han mandado hacer un programa al que le tenemos que introducir un numero indefinido de numeros y este te devolvera el vector ordenado por el metodo que escribamos, por ej, lo he echo con burbuja, hasta ahi bien (o eso creo), el problema es que lo tenemos que introducir por linea de comandos y el programa nos tiene que devolver el vector ordenado por linea de comandos tambien.

Por ejemplo, si queremos que nos lo ordene por burbuja, en linea de comandos deveremos introducir el metodo deseado y el vector
Ejemplo:
Programa.exe burbuja 3 2 1
A lo que el programa nos tiene que devolver:
1 2 3

En el programa que he echo yo el vector que devuelve es una agrupacion de numeros a los que no le veo el mas minimo sentido

Pues ahi va mi programa, si alguien puede decirme donde esta el fallo/s, me sera de gran ayuda


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void OrdenaBurbuja (float v[], int n)
{
int t, h, e;
for (h=1; h<n; h++)
{
for(e=0; e<n;e++)
{
if (v[e]>v[e+1])
{
v[e+1] = t;
v[e] = v[e+1];
t= v[e];
}
}
}
}


void ImprimirVector(float v[], int n)
{
int i;
for (i=0; i<n; i++)
{
printf("%f ", v[i]);
}
}

int main(int argc, char *argv[])
{
if(strcmp(argv[1], "burbuja")==0)
{
int n, i, m=2, o;
float *v;
{
n=argc-2;
v =(float *)malloc(n*sizeof(float));
for (i=0; i<n; i++)
{
v[i] = atof(argv[i+2]);
}
}
OrdenaBurbuja(v, n);
ImprimirVector(v, n);
}
system("PAUSE");
return 0;
}
  #2 (permalink)  
Antiguo 09/03/2009, 22:49
 
Fecha de Ingreso: julio-2008
Mensajes: 3
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ordenacion Burbuja en C

Bueno no entiendo muy bien lo que quieres hacer pero aqui te dejo el codigo de como realizar una ordenacion por burbuja limitado por el usuario:


#include <cstdio>
#include <cstdlib>

int main(void)
{
int n =0; //Declaramos una variable para el limite.
printf("Introdusca cuantos datos: \n");
scanf("%i",&n); //Leemos el limite.
float array[n]; //Declaramos un array con limite a n.

printf("\n"); //Linea en blanco.

for (int i=0;i<n;i++) //Bucle for para leer datos.
{
printf("Introduca dato: ");
scanf("%f",&array[i]);
}

for (int i=0;i<n;i++) //Bucle for para ordenar por burbuja.
for (int j=0;j<n-1;j++)
{
if (array[j] > array[j+1])
{
float temp=0;
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}

printf("\nSalida de datos ordenados es: \n");

for (int i=0;i<n;i++) //Bucle for para imprimir los datos ordenados.
{
printf("%f \n",array[i]);
}

system("pause");
return 0;
}

Espero que sirba de algo...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:23.