2016-05-06 14 views
0

Ich mache mein Klassenlabor in Java.schlechte Operandentypen für den binären Operator + (JAVA PROGRAM)

Dieses Programm soll das Siegerteam durch Summieren der Gesamtpunktzahl ausgeben. (es gibt blaues Team und weißes Team in der Eingabedatei mit dem Vornamen des Mitglieds und der Punktzahl jedes Mitglieds.)

Ich habe Fehler bad Operandentypen für binären Operator. (SumArray) Ich denke, es ist, weil int type + int [ ]. Kann mir jemand helfen? Wenn Sie ein anderes Problem sehen, lassen Sie es mich bitte wissen. Ich denke, es gibt viele Fehler außer diesem.

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); 
    } 
} 

Antwort

1

Nur verwenden:

sum += Score[i]; 

innen for Schleifenelemente der Anordnung hinzuzufügen.

Sie erhalten einen Fehler, weil Sie int nicht mit Array hinzufügen können. In Java können Sie den Operator + nicht direkt mit Arrays verwenden.

+0

danke! Hier ist mehr Frage. Nach der Korrektur mit Score [i] gibt es keinen Syntaxfehler. Allerdings führt das Programm macht viele seltsame Charakter. (wie .. Gewinner-Team: Blau [Ljava.lang.String; @ 63fd26: [I @ c0235awinning Team: Blau [Ljava.lang.String; @ 63fd26: [ Ich @ c0235awinning Team: Blau [Ljava.lang.String; @ 63fd26: [I @ c0235a) Was ist das Problem? –

+0

@JustinJuntaeKim Das passiert, wenn Sie versuchen, ein Array zu drucken. Sie müssen darüber iterieren und jedes Element einzeln ausdrucken. –

+0

Wie Bethany Louise darauf hinwies, sollten Sie entweder über jedes Element im Array iterieren, um Elemente des Arrays richtig zu stringieren, oder, wenn Sie nicht iterieren wollen, verwenden Sie 'List '. –

Verwandte Themen