Как справиться с этим видом печати в java? - PullRequest
0 голосов
/ 22 апреля 2020

При печати «Победитель - студент 1 студент 2 студент 4 студент 5 с баллами 20» - это строка, которую нужно напечатать, я хочу вместо этого: «Победитель - студент 5 с баллами 20».

Если более одного балла равны, я хочу, чтобы результат был следующим: «Победителем становится ученик 1 ученик 5 с баллами 15».

Трудно рассчитать баллы каждого ученика на основе количества гласных. , Вот входные данные:

человек go баскетбольный мяч благоприятный кенгуру

меры предосторожности неправильное поведение батареи чашки экрана

паразит привет добро прийти образование

приглашение сжать умножение бумаги муравей

ПОМОЩЬ ДЕМОКРАТИИ СОТРУДНИЧЕСТВА ПОЗДРАВЛЯЕМ ВАМ

Вот код:

    import java.util.*;
    public class Main{
    public static void main(String[] args){
    char vowels[]={'A','E','I','O','U'};
    String input[][]=new String[5][5];

    Scanner sc = new Scanner(System.in);
    String ip[]=new String[5];
    for(int i=0;i<5;i++){
        ip[i] = sc.nextLine();
        input[i]=ip[i].split(" ");
    }

    int vowel_count[][]=new int[5][5];
    int count=0;
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            for(int k=0;k<5;k++){
                char temp=vowels[k];
                for(int l=0;l<input[i][j].length();l++){
                    if(temp==Character.toLowerCase(input[i][j].charAt(l))||temp==Character.toUpperCase(input[i][j].charAt(l))){
                        count++;
                    }
                }
            }
            vowel_count[i][j]=count;
            count=0;
        }
    }
    int score[] = new int[5];
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            if(vowel_count[i][j]==1||vowel_count[i][j]==0){
                System.out.print("0\t");
                score[i]+=0;
            }
            else if(vowel_count[i][j]==2){
                System.out.print("1\t");
                score[i]+=1;
            }
            else if(vowel_count[i][j]==3){
                System.out.print("3\t");
                score[i]+=3;
            }
            else if(vowel_count[i][j]==4){
                System.out.print("4\t");
                score[i]+=4;
            }
            else if(vowel_count[i][j]==5){
                System.out.print("6\t");
                score[i]+=6;
            }
            else{
                System.out.print("8\t");
                score[i]+=8;
            }
        }
        System.out.println();
    }
    int max=0;
    String max_index=new String();
    for(int i=0;i<5;i++){
        System.out.println((i+1)+"\t"+score[i]);
        if(score[i]>max && score[i]!=0){
            max=score[i];
            max_index=max_index+"student "+String.valueOf(i+1)+" ";
        }
        else if(score[i]==max&&score[i]!=0){
            max_index=max_index+"student "+String.valueOf(i+1)+" ";
        }
    }
    if(max!=0){
        System.out.println("The winner is "+max_index+"with points "+max);

    }
    else{
        System.out.println("No one has got any points");
    }
}

}

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Вам просто нужно удалить max_index из оператора if, иначе это добавит каждого студента.

 int max = 0;
    String max_index = new String();
    for (int i = 0; i < 5; i++) {
        System.out.println((i + 1) + "\t" + score[i]);
        if (score[i] > max && score[i] != 0) {
            max = score[i];
            max_index =  "student " + String.valueOf(i + 1) + " ";
        } else if (score[i] == max && score[i] != 0) {
            max_index = max_index + "student " + String.valueOf(i + 1) + " ";
        }
    }
0 голосов
/ 22 апреля 2020

Используйте первый l oop, чтобы получить максимум

for(int i=0;i<5;i++){
    if(score[i]>max && score[i]!=0){
        max=score[i];
    }
}

Затем еще один, чтобы установить имена

for(int i=0;i<5;i++){
    if(score[i]==max&&score[i]!=0){
        max_index=max_index+"student "+String.valueOf(i+1)+" ";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...