HUH函数
为了编写您的代码,您必须清楚您正在实施的解决方案。一个很好的初学者练习,是写一个程序执行的流程图(键盘前的纸)。我做了一个供你将来参考:因此,考虑到该算法,我实现了一个可能的解决方案(使用硬编码数据)。主类:public class MainE { public static void main(String[] args) { String[] homeTeam = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p"}; String[] awayTeam = {"p", "o", "i", "u", "y", "t", "r", "e", "w", "q"}; int[] homeScore = {5,1,3,5,6,1,10,4,3,2}; int[] awayScore = {4,3,2,1,3,5,42,1,3,2}; int sumHome = 0; int sumAway = 0; int drawCount = 0; int highestHomeScore = homeScore[0]; int highestAwayScore = awayScore[0]; System.out.println(); for (int index = 0; index < 10; index++) { System.out.println(homeTeam[index] + " [" + homeScore[index] + "]" + " | " + awayTeam[index] + " [" + awayScore[index] + "] "); sumHome += homeScore[index]; sumAway += awayScore[index]; if (homeScore[index] > highestHomeScore) highestHomeScore = homeScore[index]; if (awayScore[index] > highestAwayScore) highestAwayScore = awayScore[index]; if(homeScore[index] == awayScore[index]) drawCount++; } System.out.println(); System.out.println("Totals"); System.out.println("-------------------------------"); System.out.println("Total number of matches played: " + homeTeam.length); System.out.println("Total of all home scores: " + sumHome); System.out.println("Total of all away scores: " + sumAway); System.out.println("Total number of draws: " + drawCount); System.out.println("The highest home score: " + highestHomeScore); System.out.println("The highest away score: " + highestAwayScore); }}输出:q [5] | p [4] w [1] | o [3] e [3] | i [2] r [5] | u [1] t [6] | y [3] y [1] | t [5] u [10] | r [42] i [4] | e [1] o [3] | w [3] p [2] | q [2] Totals-------------------------------Total number of matches played: 10Total of all home scores: 40Total of all away scores: 66Total number of draws: 2The highest home score: 10The highest away score: 42编辑:如果你想避免空值,你必须询问每次迭代if(homeTeam[index] != null ),也手动计算匹配(它们不再匹配数组长度)句柄空public class MainE { public static void main(String[] args) { String[] homeTeam = { "q", "w", "e", null, "t", "y", "u", "i", "o", "p"}; String[] awayTeam = {"p", "o", "i", null, "y", "t", "r", "e", "w", "q"}; int[] homeScore = {5,1,3,0,6,1,10,4,3,2}; int[] awayScore = {4,3,2,0,3,5,42,1,3,2}; int sumHome = 0; int sumAway = 0; int drawCount = 0; int matches = 0; int highestHomeScore = homeScore[0]; int highestAwayScore = awayScore[0]; System.out.println(); for (int index = 0; index < 10; index++) { if(homeTeam[index] != null ){ System.out.println(homeTeam[index] + " [" + homeScore[index] + "]" + " | " + awayTeam[index] + " [" + awayScore[index] + "] "); sumHome += homeScore[index]; sumAway += awayScore[index]; if (homeScore[index] > highestHomeScore) highestHomeScore = homeScore[index]; if (awayScore[index] > highestAwayScore) highestAwayScore = awayScore[index]; if(homeScore[index] == awayScore[index]) drawCount++; matches++; } } System.out.println(); System.out.println("Totals"); System.out.println("-------------------------------"); System.out.println("Total number of matches played: " + matches); System.out.println("Total of all home scores: " + sumHome); System.out.println("Total of all away scores: " + sumAway); System.out.println("Total number of draws: " + drawCount); System.out.println("The highest home score: " + highestHomeScore); System.out.println("The highest away score: " + highestAwayScore); }}输出:q [5] | p [4] w [1] | o [3] e [3] | i [2] t [6] | y [3] y [1] | t [5] u [10] | r [42] i [4] | e [1] o [3] | w [3] p [2] | q [2] Totals-------------------------------Total number of matches played: 9Total of all home scores: 35Total of all away scores: 65Total number of draws: 2The highest home score: 10The highest away score: 42注意:更好的选择是在询问输入时跳过空值。