Boa noite! Por favor:
Como faço para cada vez que um loop for repetir, guardar tal valor em uma variável?
(Se o loop for executado 5 vezes, terei 5 variáveis)
Meu objetivo é comparar os valores.
Que tal valor é esse? Não entendi sua dúvda.
Voce quer fazer contagem quando um determinado for for percorrido ?
Percorro toda uma matriz. Mas para cada coluna, percorro todas as linhas daquela coluna.
Quero fazer assim: para coluna 0, some os valores das linhas(0, 1…matriz.length) na coluna 0. Guarde esse valor.
Repita para a coluna 1, coluna 2…
**ou seja: somar os valores de cada coluna.
Depois quero comparar esses valores e retornar a coluna que deu o maior número. (isso eu tenho ideia de como fazer, mas não como guardar os valores para cada coluna).
Acho que uma boa opção seria criar um vetor…
hmm, cada vez que repetir o loop, guardar o valor em um array?!
Entendi. Algo assim ajuda?
import java.util.Scanner;
public class Matriz
{ public static void main(String args[])
{ Scanner entrada = new Scanner(System.in);
int x, y, matriz[][];
matriz = new int[2][2];
for (x=0;x<2;x++)
{ for (y=0;y<2;y++)
{ System.out.print("Digite o elemento " + x + "-" + y + " ");
matriz[x][y] = entrada.nextInt();
}
}
soma_matriz(matriz);
System.out.println("\nSoma da matriz\n\n");
for (x=0;x<2;x++)
{ for (y=0;y<2;y++)
{ System.out.print(matriz[x][y] + " ");
}
System.out.println();
}
}
public static void soma_matriz(int m[][])
{ int i, j, me, v;
for (i=0;i<2;i++)
{ v=m[i][i];
for (j=0;j<2;j++)
m[i][j] = m[i][j] + v;
}
}
}
Não era bem isso, mas você me deu uma ideia. Valeeuu!!! :]
Olá, eu estava fazendo alguns exercícios quando eu me deparei exatamente com esse problema…
Após algum tempinho tentando resolver cheguei a dois resultados, e eu espero que isso ajude alguém a pelo menos não ter todo o trabalho que eu tive…
A primeira opção, conforme a descrição, armazenar os valores de cada interação de um loop em uma array para comparar menor e maior:
`import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] numeros = new int[5];
for (int i = 0; i < 5; i++) {
System.out.print("Digite um número: ");
numeros[i] = in.nextInt();
}
Arrays.sort(numeros); // organiza os números em ordem crescente
System.out.println(numeros[4]); //Maior Número
System.out.println(numeros[0]); //Menor Número
}
}`
A segunda opção não é caso você não queria usar arrays, no meu caso foi isso, meu professor pediu pra resolver isso com um loop. Então cheguei a essa conclusão:
`import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sexo = new Scanner(System.in);
System.out.print("Digite: \n" );
int x = sexo.nextInt();
int y = x;
int z = x;
for (int i = 0; i < 4; i++){
System.out.print("Digite: " );
x = sexo.nextInt();
if (x<y){
y = x;
}
if (x>z){
z = x;
}
}
System.out.println("Menor " + z);
System.out.println("Maior " + y);
}
}`
Nesse último, a cada interação do loop, ele faz um check pra ver se o número digitado for maior ou menor que a variável temporária respectiva de maior e menor. É meio confuso, mas se analisar é lógica pura então boa sorte.