Verificando maior e menor número

Opaa, eu tenho que fazer uma verificação para achar entre 3 números, qual é o maior, o menor, e o número intermediário. O maior e o menor eu consigo achar, mas não estou conseguindo pegar o valor intermediário, como eu posso fazer?

Uai, o valor intermediário não é o maior nem o menor :slight_smile:

Se a idéia é ler 3 números e apresentar o maior, o menor e o intermediário, é simples. Embora você tenha as seguintes situações: Todos iguais, um maior e dois menores, um menor e dois maiores e os três diferentes.
Agora, se forem mais de três números lidos, o problema fica muito, mas muito complexo.

Pois então, são exatamente 3 números que eu preciso, e sim, meu problema fica exatamente nessas situações, ter um maior e dois menores, um menor e dois maiores e tal…mas pegar o número que não é nem o maior e nem o menor, esse que tá complicado de pegar.

Você pode usar o sort (ordenação) de um array de int.

int a[]={30,7,9}; Arrays.sort(a); System.out.println(Arrays.toString(a));
Vai imprimir ordenadamente 7,9,30 (Menor, intermediario, maior)
a[0] é o menor;
a[1] é o intermediario;
a[2] é o maior;

Quando você tem um problema desses, desenhe um fluxograma.

Por exemplo, digamos que você tenha 3 números: a, b e c.

Se a é o menor e b o maior, então c é o do meio.
Se a é o menor e c é o maior, então b é o do meio.

E assim por diante.

Desenhe todas as opções, e então transforme em um programa.

Dá trabalho? Dá, mas é mais fácil que você ficar escrevendo o programa direto no computador. Se não usar pelo menos um lápis e papel, você vai é ficar empacado mesmo.

[quote=bezier curve]Quando você tem um problema desses, desenhe um fluxograma.

Por exemplo, digamos que você tenha 3 números: a, b e c.

Se a é o menor e b o maior, então c é o do meio.
Se a é o menor e c é o maior, então b é o do meio.

E assim por diante.

Desenhe todas as opções, e então transforme em um programa.

Dá trabalho? Dá, mas é mais fácil que você ficar escrevendo o programa direto no computador. Se não usar pelo menos um lápis e papel, você vai é ficar empacado mesmo.[/quote]
Faça o algoritmo.
Algoritmos são ótimos meios de expressar a sequência lógica e listar os recursos que serão utilizados para resolver determinada situação.
Você vai precisar aprender a trabalhar com planejamento antes de sair codificando. “Ah, mas ir direto pro código sem enrolar é melhor”. É, melhor para cometer erros medíocres e que seriam facilmente evitados se você pensasse antes de agir.

Se quiser uma maneira mais “manual”, ou sem uso de outras classes, pode analisar o seguinte código:

                int[] numeros = { 7, 5, 1 };

		int temp = 0;
		for (int i = 0; i < numeros.length; i++) {
			if(i == 1){
				break;
			}
			if (numeros[i] > numeros[i + 1]) {
				numeros[i] = numeros[i];
			} else {
				temp = numeros[i];
				numeros[i] = numeros[i + 1];
				numeros[i + 1] = temp;
			}
		}
		System.out.println(numeros[0] + "," + numeros[1] + "," + numeros[2]);

Ta bem “nas coxas” mas dá pra se ter uma idéia… :-o

[quote=NewScript]Se quiser uma maneira mais “manual”, ou sem uso de outras classes, pode analisar o seguinte código:

                int[] numeros = { 7, 5, 1 };

		int temp = 0;
		for (int i = 0; i < numeros.length; i++) {
			if(i == 1){
				break;
			}
			if (numeros[i] > numeros[i + 1]) {
				numeros[i] = numeros[i];
			} else {
				temp = numeros[i];
				numeros[i] = numeros[i + 1];
				numeros[i + 1] = temp;
			}
		}
		System.out.println(numeros[0] + "," + numeros[1] + "," + numeros[2]);

Ta bem “nas coxas” mas dá pra se ter uma idéia… :-o

[/quote]
Camarada, esse tipo de atitude é o que, literamente, fode com nossa profissão.
Deixa o sujeito pensar, raciocinar é parte fundamental do processo de programação (embora muitos acreditem que programador não tem cérebro).

As vezes raciocinar pode ser a solução, mas conhecer métodos faz parte também.
O que fode com nossa profissão é falta de pesquisa.
Programação não é apenas raciocínio, é conhecimento.
Se você não concorda com isso creio que você seja um desses programadores que você citou.

[quote=Scoobydoo]As vezes raciocinar pode ser a solução, mas conhecer métodos faz parte também.
O que fode com nossa profissão é falta de pesquisa.
Programação não é apenas raciocínio, é conhecimento.
Se você não concorda com isso creio que você seja um desses programadores que você citou.[/quote]
Conhecimento é a soma de pesquisa e capacidade de interpretação. Não basta apenas ler, você precisa ter entendimento suficiente para absorver o conhecimento disponível e, principalmente, filtrar o que é “bom” do que é “mau”.
O primeiro passo para o entendimento adequado é saber em que nível estamos tratando determinado problema.
Se uma pergunta deixa nítido que o autor da mesma é iniciante na programação, por que devo responder de uma forma em que conceitos muito mais elevados devem ser considerados, como a forma que você utilizou para responder a esta questão?

É apenas uma função de um array…
Mas tudo bem. Max… se atente ao bezier curve

[quote=NewScript]Se quiser uma maneira mais “manual”, ou sem uso de outras classes, pode analisar o seguinte código:

                int[] numeros = { 7, 5, 1 };

		int temp = 0;
		for (int i = 0; i < numeros.length; i++) {
			if(i == 1){
				break;
			}
			if (numeros[i] > numeros[i + 1]) {
				numeros[i] = numeros[i];
			} else {
				temp = numeros[i];
				numeros[i] = numeros[i + 1];
				numeros[i + 1] = temp;
			}
		}
		System.out.println(numeros[0] + "," + numeros[1] + "," + numeros[2]);

Ta bem “nas coxas” mas dá pra se ter uma idéia… :-o

[/quote]

Ola, gostaria de informar ao interessado, que sou iniciante, e como iniciante, procurei a solução em um livro para iniciantes, um livro de algorítimos, o código provavelmente não está 100% fiel, já que o livro não se encontra mais comigo, porém, expressa (acredito) a didática dos autores.

1 - Esse não é um código de uso real, é para ser, como relatei, ANALISADO,
2 - Existe minúcias, por exemplo, que a pessoa perceberá ao digitar o código,
3 - O código responde a questão mas dá brechas para várias observações,

Resumindo, se a pessoa for do tipo, copia/cola, não vai ter um código 100%, se não for do tipo copia/cola ele terá a resposta e muita coisa para pensar. O que por exemplo? Eis a questão…

O silêncio pode vir de inúmeras palavras…

Cara, se você conhece dois de 3 números, maior e o menor, o intermediário é o que sobra.