Suma de 3 arreglos

Iniciado por SDCC, 9 Junio 2017, 05:39 AM

0 Miembros y 1 Visitante están viendo este tema.

SDCC

Disculpen , soy nuevo, y estoy empezando  a trabajar con los arreglos en java , sin embargo he tenido un problema , se supone que dentro del siguiente texto , intento hacer un menu en el cual la primera opcion sea ordenar , esa ya quedo lista , sin embargo en la segunda opcion conlleva a dar 10 nombres , que como continuacion se puede introducir 10 calificaciones de 3 materias distintas , sin embargo al final debo hacer que la el valor que esta en el arreglo  
  • , se sume con la del arreglo 2[0] y se sume con la del arreglo3
  • para finalmente sacar un promedio de las 3 , sin embargo a la hora de ejecutarlo se repiten los valores de los arreglos de manera infinita , he intentado checar los corchetes pero no encuentro el error, de antemanos gracias  :huh:
    Código (java) [Seleccionar]
    package examen.semestral.ultimo;
    import java.util.*;
    import javax.swing.JOptionPane;
    public class ExamenSemestralUltimo {

       /**
        * @param args the command line arguments
        */
       public static void main(String[] args) {
      Scanner sc= new Scanner (System.in);
    int opcion;
         
               opcion = Integer.parseInt(JOptionPane.showInputDialog(null,
                       "Opciones:\n\n"
                       + "1. Captura de 10 elementos y su posterior ordenamiento \n"
                       + "2. Ingreso de nombre del alumnos \n"
                               + "3. Salir del programa"));
         
       
       
               switch(opcion){
                   case 1:
      int Ta;
    Ta= 10;
    int aux = 0;
       int i;
       int j;
        int[] numeros = new int[Ta];
      for (i=0; i < numeros.length ; i ++){
              numeros[i]=Integer.parseInt(JOptionPane.showInputDialog ( "Ingresa los numeros "));
     System.out.print( "Estos son los numeros desordenados:      "+ numeros [i]+ "  \n"  );
      }
     for (i=0; i < numeros.length ; i ++){
         

             
                    for (i=0; i < numeros.length ; i ++){
                     for (j=0; j < numeros.length ; j ++){
                         if (numeros[i] < numeros [j]){
                             aux = numeros [i];
                             numeros [i] = numeros [j];
                             numeros [j] = aux ;
                           
                         
       
       
                         }}}
          for (i=0; i < numeros.length ; i ++){
                            System.out.print("Estos son los numeros acomodados  "+ numeros[i]+"\n");}
           }
                   break;
                   case 2:
                       int z;
      String[ ] nombre = new String[10];
      for (z=0; z <nombre.length ; z ++){
              nombre[z]=JOptionPane.showInputDialog("Ingresa los nombres del alumno "+ (z+1)+"");
               System.out.print( "Alumno no. "+(z+1)+") "+(nombre[z])+" \n");
      }int opcion2;
                opcion2 = Integer.parseInt(JOptionPane.showInputDialog(null,
                       "Opciones:\n\n"
                       + "1. Capturar calificaciones de las materias de Contabilidad , Electronica y Calculo \n"
             
                               + "2. Salir del programa"));
                switch(opcion2){
                    case 1:
                     
                        int Ta3;
                        Ta3= 10;
                        int e;
                       
                       
                         int[] cal1 = new int[Ta3];
      for (e=0; e < cal1.length ; e ++){
          cal1 [e]= Integer.parseInt(JOptionPane.showInputDialog ( "Ingresa la calificacion de Contabilidad del Alumno  "+ (e+1)+ "  "));
           System.out.print( "Calificacion de Contabilidad de Alumno "+(e+1)+"    "+ cal1 [e]+ "  \n"  );
      }
       
                        int Ta4= 10;
                        int x;
                       
                       
                         int[] cal2 = new int[Ta4];
                    for (x=0; x < cal2.length ; x ++){
          cal2 [x]= Integer.parseInt(JOptionPane.showInputDialog ( "Ingresa la calificacion de Electronica del Alumno  "+ (x+1)+ "  "));
                     System.out.print( "Calificacion de Electronica de Alumno "+(x+1)+"    "+ cal2 [x]+ "  \n"  );
                    }
                    int Ta5= 10;
                        int v;
                       
                       
                         int[] cal3 = new int[Ta5];
                    for (v=0; v < cal3.length ; v ++){
          cal3 [v]= Integer.parseInt(JOptionPane.showInputDialog ( "Ingresa la calificacion de Calculo del Alumno  "+ (v+1)+ "  "));
             
          System.out.print( "Calificacion de Calculo de Alumno "+(v+1)+"    "+ cal3 [v]+ "  \n"  );
                    }
                   
               
               
                    int opcion3;
                     opcion3 = Integer.parseInt(JOptionPane.showInputDialog(null,
                       "Opciones:\n\n"
                       + "1. Sacar Promedios \n"
             
                       + "2. Salir del programa"));
                        switch(opcion3){
                            case 1:
     int y;
                                 for (y=0; y < 10 ; y ++){
                                       int suma[]=new int[10];
                                       int d;
                                       
                                  for (d=0; d < 10 ; d ++){
                                 
                                 double promedio;
                             
                                    for (e=0; e < 10 ; e ++){
                                        for (x=0; x < 10 ; x ++){
                                       
                                            for (v=0; v < 10 ; v ++){
                             
                                       
                                     
                                   suma[d]= cal3[v]+cal2[x]+cal3[e];
                               
                                 
                               
                                 int r;
                               for (r=0; r < 10 ; r ++){
                                 System.out.print("La suma de las calificaciones del alumno  "+(r+1)+" son"+ suma[d]+" \n ");}
                                  }}}
                                           }
                                    }
                                 break;
                                 case 2:
                                 break;
                               }
                    case 2:
                break;
                }
                }
               }
                         
                                       
                                  }    
                                                 



    · Los códigos deben ir en etiquetas GeSHi
    · Los temas de Java van en el subforo de Java, no C++
    >aquí las reglas del foro
    -Engel Lex

3n31ch

Hola, bienvenido. (Aunque algo me dice que este sera tu único mensaje en el foro).

Los puntos que te diré a continuación no son con animo de ofender, solo de intentar hacer que un estudiante sea mejor programador.

1. Cuando programes tienes que respetar el endentado. (de verdad ayuda mucho)
2. Intenta respetar las convenciones de Java (en este mismo foro tienes con chincheta un tema sobre las buenas practicas.
3. Usa métodos (esto es menos importante, puesto que no se si ya te enseñaron usarlos... pero al ver tu código y pensar que este es el ultimo examen... he de suponer que si lo hicieron...)

En resumen, si soy tu profesor mas que un aprobado no te pongo (aunque funcione perfecto).

Dejando claro eso, te puedo decir que tienes muchos ciclos anidados, cuando realmente necesitas uno:

Código (java) [Seleccionar]

                            int[] suma = new int[10];
                            int[] promedio = new int[10];
                            for (int y = 0; y < 10 ; y ++){
                                suma[y] = cal1[y] + cal2[y] + cal3[y];
                                promedio[y] = suma[y]/3;
                                System.out.println("La suma y promedio del estudiante " + nombre[y] + " es: ");
                                System.out.println("Suma: " + suma[y]);
                                System.out.println("Promedio: " + promedio[y]);
                            }


Ese pequeño cambio debería reparar el programa.

Te diría que aquí no se hacen tareas, pero teniendo en cuenta que ya tienes todo lo demás hecho... haré la excepción.