Subtração da 3 coluna de uma Matriz por -1

Boa noite após ficar um tempo em cima desse algoritmo da matriz 3x3 cheguei a este resultado. nao sei se fiz de maneira certa, mais consegui chegar a um resultado, aceito correção dos Membros, para que possa entender melhor.

bom já de começo como enunciado pede para inicializar coloquei Random numero = new Random(); bom logo abaixo esta o código.



import java.util.Random;
import java.util.Scanner;

/**
 * Inicializar uma matriz bidimensional quadrada (3X3) do tipo inteiro, subtrair
 * a 3° Coluna dela por 1. Mostrar a matriz original e a resultante.
 * 
 * @author 
 * 
 */
public class Matriz3x3Sub {

	public static void main(String[] args) {
		int matrizA[][] = new int[3][3];
		 
		Random numero = new Random();		

		for (int l = 0; l <= 2; l++) {
			for (int c = 0; c <= 2; c++) {

			matrizA[l][c] = numero.nextInt(10);
				 
				//Scanner digite = new Scanner(System.in);
				//System.out.println("Digite valor para Matriz Linha [" + (l + 1)
					//	+ "] Coluna [" + (c + 1) + "]");
				//matrizA[l][c] = digite.nextInt();

			}
		}

		// apresentando a matriz
		System.out.println("\n Matriz original ");
		for (int l = 0; l <= 2; l++) {
			for (int c = 0; c <= 2; c++) {

				//apresenta a minha matriz original
				System.out.println("\n matriz [" + (l + 1) + "],[" + (c + 1)
						+ "] = " + matrizA[l][c]);
				

				//apresentar le cada linha e coluna ate chegar aoobjetivo que e apnas 3 coluna
				if (c == 2)// se coluna for igual a 2, quer dizer que estou na
				// terceira coluna e quero apenas os elementos da  terceira coluna
					matrizA[l][c] = matrizA[l][2] - 1;
				//matriz linha e coluna recebe ela mesma linha e coluna -1;

			}

		}

		//dois for para apresentar a matriz resultanti
		System.out.println("\nMatriz resultanti ");
		for (int l = 0; l <= 2; l++) {
			for (int c = 0; c <= 2; c++) {
				System.out.println("\n\nResultanti [" + (l + 1) + "],[" + (c + 1)
						+ "] = " + matrizA[l][c]);

			}
		}
	}
}

matrizA[l][c] = numero.nextInt(10); comecei colocando 3 e logo na linha um coluna um começava com 0, apos colocar o valor 10 nao inicializou com 0 mais seria porque e ate 10 elementos ou não ?

Olá, olivercld!

Dei uma modificada, veja:

[code]import java.util.Random;

/**

  • Inicializar uma matriz bidimensional quadrada (3X3) do tipo inteiro, subtrair
  • a 3° Coluna dela por 1. Mostrar a matriz original e a resultante.
  • @author

*/
public class Matriz3x3Sub {

public static void main(String[] args) {
	int matrizA[][] = new int[3][3];
	 
	Random numero = new Random();		

	// Matriz Inicial
	System.out.println("\nMatriz Original :");
	for (int l = 0; l <= 2; l++) {
		for (int c = 0; c <= 2; c++) {
			matrizA[l][c] = numero.nextInt(10);  // Gerando Matriz Inicial

			// Imprimindo Matriz Inicial
			System.out.print(matrizA[l][c]+" ");
			if(c == 2){
				System.out.println(""); // Pula linha ao final da linha
				matrizA[l][c] -= 1; // Subtrai 1 das 3º coluna de cada linha
			}

		}
	}

	System.out.println("\nMatriz Resultante: ");
	for (int l = 0; l <= 2; l++) {
		for (int c = 0; c <= 2; c++) {
			System.out.print(matrizA[l][c]+" ");
			if(c == 2)
				System.out.println("");
		}
	}
}

}[/code]

Abraço!

Caramba ficou bem menor Obrigado Vingdel eu não sabia que logo no inicio eu poderia ja gerar a matriz e dentro do mesmo for imprimi la e logo depois já fazer a sub dentro do mesmo for eu tentei fazer isso mais não deu certo.

[code]matrizA[l][c] = numero.nextInt(10); // Gerando Matriz Inicial
if(c == 2){
matrizA[l][c] -= 1;//isso aqui seria a mesma coisa que eu fiz

matrizA[l][c] = matrizA[l][c] -1;// recebe ela mesma menos 1

//outra questão e eu só não entendi porque aqui inicia com 10
numero.nextInt(10); // significa que vou ter 10 elementos ou seja vai de um a dez ?
[/code]

outra questão que esqueci porque precisa na hora de imprimir a resultanti verificar se coluna e = a 2 de novo

System.out.print(matrizA[l][c]+" "); if(c == 2) System.out.println("");

isso aqui numero.nextInt(10); significa que irá escolher números aleatório entre 0 e 10, se colocasse 100 iria escolher a cada vez que rodasse números de 0 a 100. estou certo disso meu caro Vingdel.

abraço!!!

[quote=olivercld]isso aqui numero.nextInt(10); significa que irá escolher números aleatório entre 0 e 10, se colocasse 100 iria escolher a cada vez que rodasse números de 0 a 100. estou certo disso meu caro Vingdel.

abraço!!![/quote]

Exato, olivercld, nesse caso, os valores possíveis estão no intervalo [0; 10[, ou seja, de 0 (inclusive) a 10 (exclusive), o 10 é o limite e não entra como possibilidade.

Abraço!

outra questão e necessário o if embaixo da impressao da matriz resultanti ? ele serve mais para que o este if ? Vingdel

System.out.print(matrizA[l][c]+" ");    
              if(c == 2)    
                  System.out.println("");