2014-10-01 80 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)错误,该错误表示:我不断收到此错误,

此方法必须返回一个double类型的结果

+3

对不起,我很困。你正在喂食你的int类型的方法参数,并期望它能推出一个double类型的方法参数。使用你的Google Fu并搜索“cast int double”,然后删除这些问题。 – MarsAtomic 2014-10-01 23:25:53

+0

没有足够的代码来说明发生了什么。 'determineGrade()'的代码在哪里? – John3136 2014-10-01 23:27:52

+0

函数'determineGrade'在哪里? – jww 2014-10-02 01:03:43

回答

1

所有的输入都是整数。所以你的结果将是一个整数。你需要至少投一个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

当您需要添加缺少的代码时,请编辑原始问题。不要为自己的问题添加答案,因为这不是答案,是吗?现在你是否搜索了“投入int加倍?”另外,请查看SO [帮助文件](http://stackoverflow.com/help)。它会帮助你使用这个网站来获得更好的答案。 – MarsAtomic 2014-10-01 23:35:10

1

这是因为在determineGrade你什么都不返回。你只打印一些东西,但什么都不返回。所以,请将退回类型determineGrade作废,或者至少让它返回double

相关问题