Введите оценки учеников, усредните их, а затем оцените ученика по оценкам - PullRequest
0 голосов
/ 03 февраля 2019

Пример ввода:

Ученик 1 класса: 75
Ученик 2 класса: 85
Ученик 3 класса: 90
Ученик 4 класса: 85
Ученик 5 класса: 90

Пример выборки:

Топ 1: Студент 3
Студент 5
Топ 2: Студент 2
Студент 4
Топ 3: Студент 1

Scanner sc = new Scanner(System.in);
int[] grade = new int[5];
int[] gradeClone;

for(int i = 1; i <= 5; i++){
    System.out.print("Enter student " + i + " grade: ");
    grade[i-1] = sc.nextInt();
}

gradeClone = grade.clone();

int failed = 0;

for(int x = 1; x <= 5; x++){

    System.out.print("Student " + x + " Remark = ");

    if(grade[x-1] >= 60){
        System.out.println(" Passed");
    }else{
        System.out.println(" Failed");
        failed++;
    }

}

int total = 0;

for(int a = 0; a < 5; a++){
    total += grade[a];
}

int temp;

for(int j = 0; j < 5; j++){

    for(int k = 1; k < 5; k++){

        if(grade[k-1] < grade[k] ){
            temp = grade[k-1];
            grade[k-1] = grade[k];
            grade[k] = temp;
        }

    }

}
String ranking = failed <= 4 ? " then the ranking is: ": " all failed";
System.out.println("The average is " + total/5 + ranking ); 


int topCount = 5-failed;

for(int a = 1; a < 5; a++){
    if(gradeClone[a-1] == gradeClone[a]){
        --topCount;
    }
}

for(int i = 0; i < 5; i++){
    System.out.println(gradeClone[i]);
}

Я не могу придумать способ их ранжировать.Как мне это сделать?

1 Ответ

0 голосов
/ 03 февраля 2019

Я думаю, тебе нужно что-то подобное?Рейтинг от наивысшей оценки до наименьшего / от низшего к высшему.Кстати, я жестко закодировал оценку, вы можете изменить ее на пользовательский ввод.

int[] grade = {50,60,30,40,80};
int temp;
    for (int i = 0; i < grade.length; i++) 
    {
        for (int j = i + 1; j < grade.length; j++) 
        {
            if (grade[i] > grade[j]) 
            {
                temp = grade[i];
                grade[i] = grade[j];
                grade[j] = temp;
            }
        }
    }
    System.out.println("Rank from lowest to highest:");
    for (int i = 0; i < grade.length - 1; i++) 
    {
        System.out.print(grade[i] + "\n");
    }
    System.out.print(grade[grade.length - 1]);

    System.out.println("\n\nRank from highest to lowest:");
    for (int i = 4; i >= 0; i--) 
    {
        System.out.print(grade[i] + "\n");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...