【发布时间】:2016-05-06 03:27:42
【问题描述】:
我正在用 java 做我的课堂实验室。
这个程序是通过总分相加来输出获胜的球队。 (输入文件中有蓝队和白队,有成员的名字和每个成员的分数。)
二元运算符的操作数类型错误。(sumArray) 我认为这是因为 int 类型 + int []。有人可以帮帮我吗?如果您发现任何其他问题,请告诉我。我猜除了这个还有很多错误。
import java.io.*;
import java.util.*;
// declaration of the class
public class Bowling
{
// declaration of main program
public static void main(String[] args) throws FileNotFoundException
{
// 1. connect to input file
Scanner fin = new Scanner(new FileReader("bowling.txt"));
// declare arrays below
String Team, Member;
int teamw, teamb, Score;
// 2) initialize array accumulators to zero
teamw=0;
teamb=0;
int [] white_score = new int[3];
String [] white_member = new String[3];
int [] blue_score = new int[3];
String [] blue_member = new String[3];
// 3) display a descriptive message
System.out.println(
"This program reads the lines from the file bowling.txt to determine\n"
+ "the winner of a bowling match. The winning team, members and scores\n"
+ "are displayed on the monitor.\n");
// 4) test Scanner.eof() condition
while (fin.hasNext())
{
// 5) attempt to input next line from file
Member = fin.next();
Team = fin.next();
Score = fin.nextInt();
// 6) test team color is blue
// 7) then store blue member and score
// 8) increase blue array accumulator
// 9) else store white member and score
// 10) increase white array accumulator
if (Team.equals("Blue"))
{
blue_member[teamb]=Member;
blue_score[teamb] = Score;
teamb++;
}
else
{
white_member[teamw]= Member;
white_score[teamw]= Score;
teamw++;
}
}
// 11) if blue team score is larger
// 12) then display blue team as winner
// 13) else display white team as winner
if(sumArray(blue_score)>sumArray(white_score))
{
printArray("Blue", blue_member, blue_score);
}
else
{
printArray("White", white_member, white_score);
}
// 14 disconnect from the input file
fin.close();
}
public static int sumArray(int[] Score)
{
int sum=0;
for ( int i=0; i<Score.length; i++)
sum = sum+Score; ////HERE IS problem!!!!!!
return sum;
}
public static void printArray(String Team, String[] Member, int[] Score)
{
for(int i=0; i<Member.length; i++)
System.out.printf("winning team:"+Team+"\n"+Member+":"+Score);
}
}
【问题讨论】: