Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: carlosR en 07 de Abril 2016, 19:04

Título: extraño caso de un matriz en Java trabajando con matrices o tablas de datos
Publicado por: carlosR en 07 de Abril 2016, 19:04
Buen día, este es un código que crea una matriz string, la llena y ubica una fila y la muestra.
El inconveniente es que no entiendo porque no me llena la posicion (0,0) de la matriz, llenando bien el resto. o mejor la llena en blanco. Espero ayuda gracias.
Código: [Seleccionar]
{
        Scanner leer=new Scanner(System.in);
       
        String[] inicial={"Nombre","Cedula","Cargo","Celular","Direccion"};
        int N,M;
        boolean P=false;
        String c;
       
        System.out.println("Digite el numero de registros a tramitar");
        N=leer.nextInt();
       
        String[][]registro=new String[N][5];
        int[][]contador=new int[N][1];
        M=1;
       
    for (int j=0;j<N;j++) 
   
    {
         contador[j][1]= M;
         M=M+1;
        for(int i=0;i<5;i++)
        {   
         System.out.println("digite su "+ inicial[i]);
         registro[j][i]=leer.nextLine();
        }
    }
   
       System.out.println("Digite el numero de cedula a consultar");
       
       c=leer.nextLine();
       
   
for (int j=0;j<N;j++) 
   
    {  if (c.equals(registro[j][1]))
          {
             System.out.println(inicial[0]+"\t"+inicial[1] +"\t"+inicial[2] +"\t"+inicial[3] +"\t"+ inicial[4]);
             System.out.println(registro[j][0]+"\t"+registro[j][1] +"\t"+registro[j][2] +"\t"+registro[j][3] +"\t"+ registro[j][4]);
             P=true;
             
             
          }   
         
        }
       
    if (P==false)
       
    {System.out.println(" Cedula no pertenece a nuestros registros");
    }   
}
}
Título: Re:extraño caso de un matriz
Publicado por: Alex Rodríguez en 10 de Abril 2016, 21:24
Hola Carlos el código que has facilitado no compila, por favor pega el código completo de forma que podamos compilarlo para poder ayudarte

Saludos
Título: codigo completo.
Publicado por: carlosR en 11 de Abril 2016, 17:44
Código: [Seleccionar]
package javaapplication41;
import java.util.Scanner;

public class JavaApplication41 {

    public static void main(String[] args) {
        Scanner leer=new Scanner(System.in);
       
        String[] inicial={"nombre","cedula","cargo","celular","direccion"};
        int N,p;
        String c;
       
        System.out.println("Digite el numero de registros a tramitar");
        N=leer.nextInt();
       
        String[][]registro=new String[N][5];
       
    for (int j=0;j<N;j++) 
   
    {
        for(int i=0;i<5;i++)
        {   
         System.out.println("digite su "+ inicial[i]);
         registro[j][i]=leer.nextLine();
   
        }
    }
   
       System.out.println("Digite el número de cedula a consultar");
       
       c=leer.nextLine();
       
   
for (int j=0;j<N;j++) 
   
    {  if (c.equals(registro[j][1]))
          {for(int i=0;i<5;i++)
             { System.out.println(inicial[i]+"  "+ registro[j][i]);
             
              }
             
          }   
         
        }
       
}
}
Título: Re:extraño caso de un matriz
Publicado por: pandorum en 12 de Abril 2016, 07:11
En base a tu propuesta he hecho esto, molificado como quieras, sería genial que te sirva como referencia. El error tuyo estaba en que para el segundo for va la longitud del array en la posición «i»... por ejemplo:

Código: [Seleccionar]
...

String[][] matrizEjemplo;
....
for(int i=0; i<=matrizEjemplo.length-1; i++)
{
     for(int j=0; j<=matrizEjemplo[i].length-1; j++)
     {
            .....
      }
}


Aquí adjunto una img con el código que le hice para que se guíe: https://www.dropbox.com/s/mai657lw772q6le/Captura%20de%20pantalla%202016-04-12%2000.08.53.png?dl=0 (https://www.dropbox.com/s/mai657lw772q6le/Captura%20de%20pantalla%202016-04-12%2000.08.53.png?dl=0)