Escreva um aplicativo que localiza o menor de vários inteiros. Assuma que o primeiro valor lido especifica o numero de valores a serem inseridos pelo usuario.
Minha duvida é na parte de assumir o primeiro valor como o numero de valores a serem inseridos, não consigo fazer o loop contar corretamente.
Tentei fazer assim, mas não dar certo:
[code]import java.util.Scanner;
public class Menor
{
public static void main(String args[])
{
int num,menor=0;
Scanner input = new Scanner(System.in);
System.out.printf("Insira o numero de valores a ser analisados: ");
num=input.nextInt();
System.out.printf("\n1o numero: %d\n",num);
menor=num;
for(int a=1; a<=menor; a++)
{
System.out.printf("%do numero: ",a);
num=input.nextInt();
while(num < menor)
menor=num;
}
System.out.printf("\nO menor inteiro eh: %d\n",menor);
}
Quer dizer que duas variáveis podem assumir o valor de uma outra variável ao mesmo tempo, aqui no caso ‘menor=num’ e ‘indice=num’. Pensei que qdo ‘menor’ fosse igual a ‘num’, o ‘num’ passaria a ter um valor default.
Pois é. O valor de uma variável só se altera quando você manda isso acontecer.
Vamos supor:
int primeiraVariavel = 0;
int segundaVariavel;
primeiraVariavel = 5;
segundaVariavel = (primeiraVariavel+1);
O que acontece aqui… primeiraVariavel foi declarada e inicializada já com um valor; a saber, 0. segundaVariavel foi apenas declarada. Então mudamos o valor de primeiraVariavel para 5, e depois atribuímos à segundaVariavel a soma de primeiraVariavel + 1. Depois disso tudo, segundaVariavel vale 6 e primeiraVariavel continua valendo 5. Uma dica: quando as coisas não acontecerem do jeito que você espera, “printe” suas variáveis em determinados pontos de execução do seu código. É como armar ratoeiras e só ficar observando qual faz “PLÉC!!”