Foros del Web » Programación para mayores de 30 ;) » Java »

Y que estoy haciendo mal??

Estas en el tema de Y que estoy haciendo mal?? en el foro de Java en Foros del Web. Hola, buenas, seria alguien tan amable de decirme porque este codigo no me corre al final, lo que quiero hacer es introducir 10 numeros y ...
  #1 (permalink)  
Antiguo 01/12/2011, 20:38
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 8 meses
Puntos: 9
Pregunta Y que estoy haciendo mal??

Hola, buenas, seria alguien tan amable de decirme porque este codigo no me corre al final, lo que quiero hacer es introducir 10 numeros y validar que no se repitan(ya esta hecho), para despues ordenarlos de menor a mayor, pero por alguna razon no me hace eso al final, alguien podria decirme que esta mal en el metodo ordenamiento del programa

Código Java:
Ver original
  1. import javax.swing.*;
  2.  
  3. public class Tarea2Main
  4. {
  5.   public static void main(String[] args)
  6.   {
  7.      int[] arreglo=new int [10];
  8.      String numeroS;
  9.      int numeroE;
  10.      int i=0;
  11.      int temporal=0;
  12.      
  13.      while(i<10)
  14.      {
  15.        numeroS=JOptionPane.showInputDialog(null, "Ingrese un numero en la posicion#"+i);
  16.        numeroE=Integer.parseInt(numeroS);
  17.        while(buscar(arreglo,i,numeroE)!=-1)
  18.        {
  19.          JOptionPane.showMessageDialog(null,"Error\nNumero Repetido\nPor favor ingrese otro numero!!!");
  20.          numeroS=JOptionPane.showInputDialog(null, "Ingrese un numero en la posicion#"+i);
  21.          numeroE=Integer.parseInt(numeroS);
  22.        }
  23.        arreglo[i]=numeroE;
  24.         i++;
  25.      }
  26.      
  27.      JOptionPane.showMessageDialog(null, "El vector sin ordenar es:\n"+arreglo[0]+" "+arreglo[1]+" "+arreglo[2]+" "+arreglo[3]+" "+arreglo[4]+" "+arreglo[5]+" "+arreglo[6]+" "+arreglo[7]+" "+arreglo[8]+" "+arreglo[9]);
  28.      Ordenamiento(arreglo, i, temporal);
  29.   }
  30.      
  31.      public static int buscar(int[]matriz, int longitud, int valor)
  32.      {
  33.        for(int j=0;j<longitud;j++)
  34.        {
  35.          if(matriz[j]==valor)
  36.            return j;
  37.        }
  38.        return -1;
  39.      }
  40.      
  41.      public static void Ordenamiento(int[]vector, int contador, int temp)
  42.      {
  43.          for(int pasadas=0;pasadas<contador;pasadas++)
  44.          {
  45.            for(int k=0;k<contador;k++)
  46.            {
  47.              if(vector[k]>vector[k+1])
  48.              {
  49.                temp=vector[k];
  50.                vector[k]=vector[k+1];
  51.                vector[k+1]=temp;
  52.              }
  53.            }
  54.          }
  55.           JOptionPane.showMessageDialog(null, "El vector ordenado es:\n"+vector[0]+" "+vector[1]+" "+vector[2]+" "+vector[3]+" "+vector[4]+" "+vector[5]+" "+vector[6]+" "+vector[7]+" "+vector[8]+" "+vector[9]);
  56.      }
  57.      
  58.   }

Quiero mostrar el vector ordenado y no me sale nada!!!

De antemano grax por la ayuda
  #2 (permalink)  
Antiguo 02/12/2011, 01:43
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 17 años, 2 meses
Puntos: 8
Respuesta: Y que estoy haciendo mal??

supongo que dara un error porque te sales del limite del array


for(int k=0;k<contador;k++)

{

if(vector[k]>vector[k+1])

{

temp=vector[k];

vector[k]=vector[k+1];

vector[k+1]=temp;

}

}

cuando estas en la ultima posicion de la variable vector no puedes comparalo con k+1 porque esa posicion no existe.

tienes que cambiar el for

for(int k=0;k<contador-pasadas-1;k++)

Etiquetas: ordenamiento, vectores
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




La zona horaria es GMT -6. Ahora son las 13:24.