我正在用java做我的课堂实验。
该计划是通过总计总分输出获胜团队。 (输入文件中有蓝队和白队,成员的名字和每个成员的得分。)
我有二进制运算符的错误操作数类型。(sumArray)我认为这是因为int type + 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);
}
}
答案 0 :(得分:1)
只需使用:
sum += Score[i];
在for
循环中添加数组元素。
您收到错误是因为您无法使用数组添加int
。在Java中,您不能直接将+
运算符与数组一起使用。