目前停留在确定某个国家/地区的最高分的程序上。我遇到的问题是确定如何通过用户的输入获得得分最高的国家。主要关注的是输出得分最高的国家和获得的奖牌(例如美国赢得2金1银1铜)。我只关心美国方法atm。我对我关心的领域发表了一些评论。
import java.util.Scanner;
class OlympicMedalsEM
{
public static void main (String[] args)
{
Scanner kb = new Scanner(System.in);
int winner=0;
String countrywin;
int gold=0, silver=0, bronze=0, count=0, num=0, sum=0; //num as in the number of countries
int goldscore=0, silverscore=0, bronzescore=0;
String country;
{
System.out.println("Please choose a scoring method. a for American or c for Canadian. ");
char again = kb.next().charAt(0);
if(again == 'a')//american method
{
// American method counts the medals with the most score. ex: gold is worth 3, silver 2, and bronze 1.
// USA win 3 gold 1 silver 0 bronze = 11 points so to speak.
{
System.out.println("Enter the number of countries competing: ");
num = kb.nextInt();
{
for (int x=0; x < num; x++)
{
System.out.println("Enter country and medal count(from gold to bronze): ");
country = kb.next();
gold = kb.nextInt();
silver = kb.nextInt();
bronze = kb.nextInt();
country += country; // not sure if for loops works better than while. Not even sure is country should be counted
}
}
{
goldscore = gold * 3;
silverscore = silver * 2;
bronzescore = bronze * 1;
sum = goldscore + silverscore + bronzescore;
winner = sum;
// determine the highest score for the winner(?)
if (sum < winner)
winner = sum;
}
{
// country is String need to change to a int(?).
// need it to also figure out how to pick the country with the high quality of medals
// Possibly substitute countrywin instead of country?
System.out.println("The winner is: " + country + " with " + gold + " gold medals," + silver + " silver medals, and " + bronze + " bronze medals.");
}
}
}
else if(again == 'c')//canadian method
{
// Canadian method which counts the total number of medals
{
System.out.println("Enter the number of countries competing: ");
num = kb.nextInt();
{
while (count<=num)
{
System.out.println("Enter country and medal count(from gold to bronze): ");
country = kb.next();
gold = kb.nextInt();
silver = kb.nextInt();
bronze = kb.nextInt();
// need to understand the american version first before proceding
+=;
}
}
{
sum = gold + silver + bronze;
}
{
System.out.println("The winner is: " + country + " with " + gold + " gold medals," + silver + " silver medals, and " + bronze + " bronze medals.");
}
}
}
else
{
System.err.println("invalid answer");
}
}
}
}