Buenas noches, necesito un programa que me permita ingresar 9 numeros en un cuadro(como un sudoku) y que me imprima los tres numeros de la diagonal \ el primer cuadro el 5 y el 9, esto eslo que he echo hasta ahora.
Gracias a quien me pueda orientar.
import java.io.*;
public class programa3
{
public static void main (String args[])throws Exception
{
BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));
String dato;
int columna;
int fila;
int b[][]=new int[3][3];
int i,valor , valor2,dato1,dato2;
columna=0;
dato1=0;
for (columna=0;columna<=2;columna++)
{
System.out.println("digite dato de fila :");
dato=teclado.readLine();
dato1=Integer.parseInt(dato);
b[0][columna]= dato1;
}
fila=0;
dato2=0;
for ( fila=0;fila<=2;fila++)
{
System.out.println("digite dato de columna:");
dato=teclado.readLine();
dato1=Integer.parseInt(dato);
b[fila][0]= dato1;
}
for(fila=0;fila<=2;fila++)
{
for(columna=0;columna<=1;columna++)
{
for(columna=0;columna<=1;columna++)
{
System.out.print(b[fila][columna]);
dato=teclado.readLine();
b[fila][0]= dato1;
}
}
System.out.println(" ");
}
}
}
la verdad que no entiendo por que se complican tanto para un programa tan fácil
solo necesitas un solo for que te recorra del 0 al 8 para leer y dentro de ese mismo bucle si es 0 ,4 o 8 lo concatenas y lo muestras fuera del bucle
-un solo bucle para leer y para guardar los de la diagonal
para que uses matrices guarda esos valores dentro de una y des pues la muestras
no es por molestar pero no lo veo ni mucha coherencia ni legibilidad al código te recomiendo que hagas los programas lo mas simples cortos y hovios posibles
:xDOMG! Me parecio ver 3 for anidados
pues ya te dijeron como se soluciona, pero justamente hoy estaba ordenando mis documentos y me encontré con este código que hice cuando empezaba a programar, espero que te sirva.
/**
* @author Darhius929
*/
public class Diagonal {
private final int arreglo[][]= {{1,2,3}, {4,5,6}, {7,8,9}};
public static void main(String args[]){
new Diagonal();
}
public Diagonal() {
imprimirDatos(arreglo);
imprimirDiagonal(arreglo);
}
private void imprimirDatos(int arreglo[][]){
System.out.println("Arreglo");
for(int fil=0; fil<arreglo.length; fil++) {
for(int col=0; col<arreglo[0].length; col++)
System.out.print("[" + arreglo[fil][col] +"]");
System.out.println("");
}
}
private void imprimirDiagonal(int arreglo[][]){
System.out.println("\nDiagonal");
for(int indice=0; indice<arreglo.length; indice++) {
System.out.print("[" + arreglo[indice][indice] +"]");
}
}
}
Como ves un solo for es mas que suficiente para mostrar los datos de la diagonal.
Un saludo.