Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado 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. {
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");
}
}
}
-
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
-
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]);
}
}
}
}
}
-
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:
...
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)