2014-11-29 3 views
0
import java.util.Scanner; 

public class Hw7Pr2 { 

    public static void main(String[] args) { 
     int[] grades = { 40, 55, 70, 58 }; 

     System.out.println("best: "); 
     int best1 = best(grades); 
     System.out.print(best1); 

     // Print Grade 
     System.out.println("Grade: "); 
     char [] grade = (char[]) best(grades); 
     for (char i = 0; i < grade.length; i++) { 
      String output= " "; 
      output += "Student " + i + " score is " + 
      grades[i] + " and grade is " + grade + "\n"; 
     } 



     } 


    private static char gradeLetter(int[] grades) { 
     char grade = 0; 
     for (int i = 0; i < grades.length; i++) { 
      if (grades[i] >= best(grades) - 10) 

       grade = 'A'; 

      else if (grades[i] >= best(grades) - 20) 

       grade = 'B'; 

      else if (grades[i] >= best(grades) - 30) 

       grade = 'C'; 

      else if (grades[i] >= best(grades) - 40) 

       grade = 'D'; 

      else 

       grade = 'F'; 


     } 

     return grade; 
    } 

    public static int best(int[] grades) { 
     System.out.println("The best scores is: "); 
     int best = grades[0]; 
     for (int i = 0; i < grades.length; i++) { 
      if (grades[i] > best) 
       best = grades[i]; 
     } 
     return best; 

    } 
} 

Я пытаюсь показать выход, как этогоКак напечатать мои методы по основному методу отображения вывода?

Student 1 балл составляет 40 и сорт C Student 2 балл составляет 55 и сорт B Student 3 балла составляет 70 и класс есть А Студент 4 оценка составляет 58, а оценка - B

Но у меня возникли проблемы с печатью метода gradeLetter.

ответ

0

Возможно, это то, что вы пытаетесь сделать:

public class Hw7Pr2 { 
    public static void main(String[] args) { 
     int[] grades = { 40, 55, 70, 58 }; 

     int best = best(grades); 
     System.out.println("The best scores is: " + best); 

     // Print Grade 
     System.out.println("Grade: "); 

     for (int i = 1; i <= grades.length; i++) { 
      char grade = gradeLetter(grades[i-1], grades); 
      String output = " "; 
      output += "Student " + i + " score is " + grades[i-1] + " and grade is " + grade + "\n"; 
      System.out.println(output); 
     } 

    } 

    private static char gradeLetter(int grade, int[] grades) { 
     char charGrade = 0; 
      if (grade >= best(grades) - 10) 

       charGrade = 'A'; 

      else if (grade >= best(grades) - 20) 

       charGrade = 'B'; 

      else if (grade >= best(grades) - 30) 

       charGrade = 'C'; 

      else if (grade >= best(grades) - 40) 

       charGrade = 'D'; 

      else 

       charGrade = 'F'; 


     return charGrade; 
    } 

    public static int best(int[] grades) { 

     int best = grades[0]; 
     for (int i = 1; i < grades.length; i++) { //will save a compare operation 
      if (grades[i] > best) 
       best = grades[i]; 
     } 
     return best; 
    } 
} 
+0

, что я могу сделать, чтобы показать студенту номер, так что это может быть студент 1, студент 2, студент 3, студент 4. Я попытался добавить еще один цикл, но он будет отображать его много раз. Он не отображает номера учеников, поскольку цикл использует char – Wilson

+0

Эй, Уилсон, Пожалуйста, проверьте, я отредактировал ответ. – user765635

0

знак [] класс = (char []) лучший (оценки);

Его недействительная часть в вашем коде. Вы не можете преобразовать массив int в char [].

0

Просто хотел показать вам какой-нибудь другой способ смотреть на него ...

import java.util.Scanner; 

public class Hw7Pr2 { 

    public static void main(String[] args) { 
     // Search the array for min, max and average 
     int[] grades = {40, 55, 70, 58}; 
     gradeStats(grades); 
    } 

    static void gradeStats(int[] array) { 
     final int A = 90; 
     final int B = 80; 
     final int C = 70; 
     final int D = 60; 

     int minimumValue = 100; 
     int maximumValue = 0; 
     double gradeSum = 0; 

     // Get max and min grades 
     for (int i = 0; i < array.length; i++) { 
      if (array[i] < minimumValue) { 
       minimumValue = array[i]; 
      } 

      if (array[i] > maximumValue) { 
       maximumValue = array[i]; 
      } 
     } 

     // Get sum of grades 
     for (int i = 0; i < array.length; i++) { 
      gradeSum = gradeSum + array[i]; 
     } 

     for (int i = 0; i < array.length; i++) { 
      if (array[i] >= A) { 
       System.out.println("Grade \"" + array[i] + "\" is an A."); 
      } else if (array[i] >= B) { 
       System.out.println("Grade \"" + array[i] + "\" is an B."); 
      } else if (array[i] >= C) { 
       System.out.println("Grade \"" + array[i] + "\" is an C."); 
      } else if (array[i] >= D) { 
       System.out.println("Grade \"" + array[i] + "\" is an D."); 
      } else { 
       System.out.println("Grade \"" + array[i] + "\" is an F."); 
      } 
     } 

     System.out.println("The lowest grade is a " + minimumValue + "."); 
     System.out.println("The highest grade is a " + maximumValue + "."); 
     System.out.printf("The sum is %d.\n", (int) gradeSum); 
     System.out.println("The average is " + gradeSum/array.length + "."); 
    } 
} 
+0

Спасибо за ваш вклад. – Wilson

Смежные вопросы