Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

osk

[Resolvido] calcular diferença

Recommended Posts

Sou iniciante em java e tenho que criar uma função para calcular pontos entres competidores para saber quem foi o ganhador, isso inclui mais de 3.

 

acredito que tenho que criar uma formula de comparação de calculo e depois de resposta mas não sei como comparar.

Parei aqui:

 

import java.util.Scanner;

 

public class pontos {

 

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

float competidor1,competidor2, competidor3;

Scanner teclado = new Scanner(System.in);

System.out.println("Quais os pontos dos compedidores?");

competidor1=teclado.nextFloat();

competidor2=teclado.nextFloat();

competidor3=teclado.nextFloat();

 

 

}

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo(não sei se tá funcionando 100%):

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;

public class Main {
	public static void main(String[] args) {
		System.out.println("Digite os valores(\"sair\" para sair):");
		List<Float> competidoresValues = new ArrayList<Float>();
		Scanner sc = new Scanner(System.in);
		String str = "";
		while(true){
			str = sc.nextLine();
			if(str.compareTo("sair") == 0){
				break;
			} else {
				try {
					competidoresValues.add(new Float(str));
				} catch(NumberFormatException e){
					continue;
				}
			}
		}

		System.out.println("Maior valor:" + maiorValor(competidoresValues));
	}

	public static float maiorValor(List<Float> valores){
		int size = valores.size();
		int i; float maior = 0;
		for(i = 0;i < size;i++){
			try {
				float current = valores.get(i);
				float next = valores.get(i+1);
				if(current >= next && current >= maior){
					maior = current;
				} else if(next > maior){
					maior = next;
				}
			} catch(IndexOutOfBoundsException e){
			}
		}
		return maior;
	}
}

É uma das maneiras de implementar isso...e a minha função ficou um pouco extendida...mas tudo bem.

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma outra maneira mais simples:

 

import java.util.*;

public class Main {

	 public static void main(String[] args) {
			System.out.println("Digite os valores ou [ENTER] para finalizar):");
			List<Float> competidores = new ArrayList<Float>();
			Scanner sc = new Scanner(System.in);
			String str = null;
			while(!(str = sc.nextLine()).equals(""))
				competidores.add(new Float(str));
			System.out.println("Maior Valor: " + Collections.max(competidores));
		}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.