preciso fazer a validação de um número já digitado na matriz, ou seja, se o usuário tentar digitar um número que já consta na matriz, o programa retornará uma mensagem do tipo: “número já digitado, informe outro número”
Meu condigo é esse, refere-se a um quadrado mágico:
int n,i,j;
System.out.println("Digite o tamanho do quadrado: ");
n = get.nextInt();
int quadrado[][] = new int[n][n];
System.out.println("Digite os valores do Quadrado: ");
for (i=0;i<n;i++) {
for (j=0;j<n;j++) {
do {
quadrado[i][j] = get.nextInt();
if (quadrado[i][j] < 1 || quadrado[i][j] > 9)
System.out.println("número inválido");
}while (quadrado[i][j] < 1 || quadrado[i][j] > 9);
}
}
Eu coloquei a validação de números menor que 1 e maior que 9, agora preciso da validação de um número ja presente no vetor.
Olá Rafael, antes de armazenar o valor na matriz, verifique se é um número válido e verifique se já não existe na matriz. Somente após as verificações, armazene na matriz.
Fiz um exemplo que pode te ajudar:
int n, i, j, valor, k, l;
boolean existe = false;
System.out.println("Digite o tamanho do quadrado: ");
n = get.nextInt();
int quadrado[][] = new int[n][n];
System.out.println("Digite os valores do Quadrado: ");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
do {
valor = get.nextInt();
if (valor < 1 || valor > 9) {
System.out.println("número inválido");
}
} while (valor < 1 || valor > 9);
//o número é válido
//percorre a matriz e verifica se o número existe nela
for (k = 0; k < n; k++) {
for (l = 0; l < n; l++) {
if (valor == quadrado[k][l]) {
existe = true;
//encerra o laço da pesquisa
l = n;
k = n;
}
}
}
//se não existir armazena
if (!existe) {
quadrado[i][j] = valor;
System.out.println("quadrado[" + i + "][" + j + "] = " + quadrado[i][j]);
} else {
//se existir muda o valor do boolean existe e decrementa o j
existe = false;
System.out.println("número já cadastrado!!");
j--;
}
}//for j
}//for i
Quer aprender mais sobre programação? Acesse meu canal SiAbreu Tec