2014-10-01 2 views
-3
double average = calcAverage(grade1, grade2, grade3, grade4, grade5); 
    System.out.println("The average is: "); 
    determineGrade(average); 

    public static double calcAverage(int grade1, int grade2, int grade3, int grade4, int grade5) { 
     double average = (grade1 + grade2 + grade3 + grade4 + grade5)/5; 
     return average;   
    } 

я получаю сообщение об ошибке, где он говорит determineGrade(average), ошибка говорит:Я получаю эту ошибку при попытке определить средний класс,

Этот метод должен возвращать результат типа двойного

+3

Извините, я сон. Вы кормите свой метод args типа int и ожидаете, что он удвоится. Используйте Google Fu и найдите «cast int double», а затем удалите эти вопросы. – MarsAtomic

+0

Недостаточно кода, чтобы рассказать, что происходит. Где код 'defineGrade()'? – John3136

+0

Где находится функция 'defineGrade'? – jww

ответ

1

Все ваши входы - это ints. Таким образом, ваш результат будет int. Вам нужно отбросить хотя бы один int, чтобы удвоить, тогда ваш результат будет также двойным.

двойной средний = (двухместный) (grade1 + grade2 + grade3 + grade4 + grade5)/5

0
Ok sorry, but the rest of the code comes as follows, 


import java.util.*; 

    public class Stock 
{ 
    public static void main (String[] args) 
    { 
    int grade1=0; 
    int grade2=0; 
    int grade3=0; 
    int grade4=0; 
    int grade5=0; 

    // All of the below are gathering input from user 
    System.out.println("What is the first grade?"); 

    Scanner input = new Scanner(System.in); 
    grade1=input.nextInt(); 

    System.out.println("What is the second grade?"); 
    Scanner input2 = new Scanner(System.in); 
    grade2=input.nextInt(); 

    System.out.println("Whar is the third grade?"); 
    Scanner input3 = new Scanner(System.in); 
    grade3=input.nextInt(); 

    System.out.println("What is the fourth grade?"); 
    Scanner input4 = new Scanner(System.in); 
    grade4=input.nextInt(); 

    System.out.println("What is the fifth grade?"); 
    Scanner input5 = new Scanner(System.in); 
    grade5=input.nextInt(); 


    double average = calcAverage(grade1, grade2, grade3, grade4, grade5); 

    System.out.println("The average is: "); 

    determineGrade(average); 

    } 
    public static double calcAverage(int grade1, int grade2, int grade3, int grade4, int grade5) 
    { 
    double average = (grade1 + grade2 + grade3 + grade4 + grade5)/5; 

     return average; 

    } 

    public static double determineGrade(double average) 


    { 

     if (average>90) 

     { 

      System.out.println("You got an A"); 

     } 

     else if (average>=80) 

     { 

      System.out.println("You got a B"); 

     } 

     else if (average>=70) 

     { 

      System.out.println("You got a C"); 

     } 

     else if (average>=60) 

     { 

      System.out.println("You got a D"); 

     } 
     else if (average<60) 



     { 

      System.out.println("You got an F"); 


     } 
    } 
    } 
+2

Когда вам нужно добавить отсутствующий код, отредактируйте исходный вопрос. Не добавляйте ответ на свой вопрос, потому что это не ответ, не так ли? Теперь вы искали «cast int double?»? Кроме того, проверьте SO [файл справки] (http://stackoverflow.com/help). Это поможет вам использовать этот сайт для получения лучших ответов. – MarsAtomic

1

Это потому, что в determineGrade не возвращают ничего. Вы только печатаете что-то, но ничего не возвращаете. Поэтому, пожалуйста, введите возвращаемый тип determineGrade void, или, по крайней мере, верните что-нибудь в double.