ayuda con burbuja en C
Publicado por btc (7 intervenciones) el 24/07/2008 04:03:28
Hola,
Quisiera ver si alguien me puede decir donde esta el error en esta compilacion:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define TAM 10
void evalua (int);
void llenausuario (int []);
void ordena (int []);
void main () {
int opcion;
clrscr ();
printf ("MENU ");
printf ("2. Llenar por el usuario ");
printf ("10. Ordenar ascendentemente ");
printf ("Digite su opcion: ");
scanf ("%d", &opcion);
evalua (opcion);
getch ();
}
void evalua (int opcion)
{
int num [TAM];
switch (opcion) {
case 2: llenausuario (num);
break;
case 10: ordena (num);
break;
}
}
void llenausuario (int numeros [])
{
int i;
printf (" Digite un valor ");
for (i=0; i<TAM; i++)
scanf ("%d", &numeros[i]);
for (i=0; i<TAM; i++)
printf ("%3d", numeros[i]);
}
void ordena (int numeros [])
{
int i,j, aux;
llenausuario (numeros);
for (j=0; j<TAM; j++)
for (i=0; i<TAM; i++)
if ((numeros[i]) > (numeros [i+1]))
{
aux= numeros [i];
numeros [i]= numeros [i+1];
numeros [i+1]= aux;
}
for (i=0; i<TAM; i++)
printf (" %3d", numeros [i]);
}
Al momento de imprimir, el primer dato que me imprime es -10 y el numero mas alto del vector entonces no lo imprime por ya no haber espacio.
Gracias!!
Quisiera ver si alguien me puede decir donde esta el error en esta compilacion:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define TAM 10
void evalua (int);
void llenausuario (int []);
void ordena (int []);
void main () {
int opcion;
clrscr ();
printf ("MENU ");
printf ("2. Llenar por el usuario ");
printf ("10. Ordenar ascendentemente ");
printf ("Digite su opcion: ");
scanf ("%d", &opcion);
evalua (opcion);
getch ();
}
void evalua (int opcion)
{
int num [TAM];
switch (opcion) {
case 2: llenausuario (num);
break;
case 10: ordena (num);
break;
}
}
void llenausuario (int numeros [])
{
int i;
printf (" Digite un valor ");
for (i=0; i<TAM; i++)
scanf ("%d", &numeros[i]);
for (i=0; i<TAM; i++)
printf ("%3d", numeros[i]);
}
void ordena (int numeros [])
{
int i,j, aux;
llenausuario (numeros);
for (j=0; j<TAM; j++)
for (i=0; i<TAM; i++)
if ((numeros[i]) > (numeros [i+1]))
{
aux= numeros [i];
numeros [i]= numeros [i+1];
numeros [i+1]= aux;
}
for (i=0; i<TAM; i++)
printf (" %3d", numeros [i]);
}
Al momento de imprimir, el primer dato que me imprime es -10 y el numero mas alto del vector entonces no lo imprime por ya no haber espacio.
Gracias!!
Valora esta pregunta


0