por alexclipse » 2012-04-13 08:48 @408
He intentado adaptarlo y tengo esto:
print "Introduzca la cantidad de números a ordenar: ";
$a = <STDIN>;
chomp ($a);
while ($a<=0) {print "Introduzca un número mayor de 0:";
$a = <STDIN>;
chomp ($a);
}
if ($a>0) {
$n = 0;
while ($n<$a) {print "Introduzca los números: ";
$b = <STDIN>;
chomp ($b);
push @numeros, $b;
$n ++; }
}
$c = 1;
$d = 0;
while ($c<$a) {
while ($d<($a-$c)) {
if ($numeros[$d]>$numeros[$d+1]) {
$temp=$numeros[$d];
$numeros[$d]=$numeros[$d+1];
$numeros[$d+1]=$temp;}
$d++;}}
print "Los números ordenados son: @numeros\n";
Lo extraño es que así al ejecutarlo no me devuelve los números, el programa no me muestra nada, pero si, por ejemplo, pongo uno de los últimos dos corchetes detrás del print() me devuelve los números ordenados infinitas veces. Es normal pues está dentro del bucle pero el caso es que están ordenados, aunque si no coloco el corchete ahí no me devuelve nada. Creo que casi lo tengo pero sigue fallando algo.