Máximo e minimo

Galera estou com um pequeno problema, queria ajudar é bem de iniciante.
Tenho que criar um algoritmo que recebe N números inteiros, e somente os positivos serão contabilizados e tem que mostrar o maior o menor valor, acho que to errando coisa fácil.

public class Lista3_24{
public static void main (String args[]){
char val;

val=Entrada.leiaInt("Qual o valor que deseja digitar? ").toLowerCase().charAt(0);
while(val!=0){
val=Entrada.leiaInt("Qual o valor que deseja digitar? ").toLowerCase().charAt(0);
if(val<0){
  System.out.println("O valor não será contabilizado ");
}
}
System.out.println("O menor valor é; "+val);

}
}

Como vc fará para receber esses números eu não sei, mas a lógica para saber o menor, maior e a soma dos pares seria assim:

public class Program {
    public static void main(String... args){
        int[] numbers = { -5, 20, -3, 0, -1, 6, 78, -100 };
        int min = 0, max = 0, total = 0;

        for ( int n: numbers ) {
            if ( n < min ) min = n;

            if ( n > max ) max = n;

            if ( n > 0 ) total += n;
        }

        System.out.printf( "Min: %d\nMax: %d\nTotal: %d\n", min, max, total );
    }
}

Bons estudos!

Muito obrigado, tava olhando minhas anotações, viajei e muito ali

1 curtida
int numero, min, max;
max=0;min=0;

numero=Entrada.leiaInt("Digite um número ");
while(numero!=0){
  numero=Entrada.leiaInt("Digite um número ");
  if(numero<0){
    System.out.println("O número não será contabilizado ");
  }
  if(numero>0){
    if(numero<min){
      min=numero;
    }
    if(numero>max){
      max=numero;
    }
  }
}
System.out.printf("O maior número será: "+ max);
System.out.printf(" e o menor número será: " +min);

}
}

Refiz o programa, só que agora para eu imprimir o menor sempre dá zero, não o menor valor, sendo que digito 0 para encerrar o programa

Olá amigo, tente utilizar uma condição para verificar se o valor digitado é igual a 0, e utilize o comando break para sair do loop

exemplo:

numero=Entrada.leiaInt("Digite um número ");
if(numero == 0){
break;
}

Não entendi!

O problema está no valor inicial da variável “min”, já que o valor inicial de "min " está zero;

//não entra na condição, já que “numero” não será menor que "min"
if(numero<min){
min=numero;
}

Eu fiz desta maneira.

public static void main(String args[]) {
Scanner entrada = new Scanner(System.in);

	// Atribuir um valor para evitar erros
	int numero = 0;
	// Atribuir o maior valor possível ao um inteiro
	int min = Integer.MAX_VALUE;
	// Atribuir o menor valor possível ao um inteiro
	int max = Integer.MIN_VALUE;

	do {
		System.out.println("Digite um número ");
		numero = entrada.nextInt();

		// encerra o loop
		if (numero == 0) {
			break;
		}

		if (numero < 0) {
			System.out.println("O número não será contabilizado ");
		}

		if (numero > 0) {
			// o primeiro número digitado será menor que min
			if (numero < min) {
				min = numero;
			}
			// o primeiro número digitado será maior que max
			if (numero > max) {
				max = numero;
			}
		}
	} while (numero != 0);

	System.out.printf("O maior número será: " + max);
	System.out.printf(" e o menor número será: " + min);
}
1 curtida

@Jalin Posso saber onde você pegou essa lista de exercício?

@willamecm
Peguei esses exercícios do livro do ascencio capítulo 5. Foi na minha faculdade

1 curtida

No meu código coloquei
Min=número
Max=número
E o código funcionou, mesmo assim amigo te agradeço pela ajuda, consegui finalizar

Valeu!