如何在Java中获得平均分数

时间:2015-10-09 03:21:45

标签: java

我是Java的新手,无法想象这个项目。有人可以帮助我吗?

    System.out.println (" \nEnter your hybrid activity mark out of 5: ") ;
    mark1 = scan.nextInt() ;

    System.out.println (" Enter your lab mark out of 10: ") ;
    mark2 = scan.nextInt() ;

    System.out.println (" Enter your assignment mark out of 100: ") ;
    mark3 = scan.nextInt() ;

    System.out.println (" Enter your test(s)/quiz mark out of 25: ") ;
    mark4 = scan.nextInt();      

    System.out.println (" Enter your lab test mark out of 5: ") ;
    mark5 = scan.nextInt() ;

    System.out.println (" Enter your final exam mark out of 30: ") ;
    mark6 = scan.nextInt() ;


   average = (float)  (mark1/5*100 + mark2/10*100 + mark3/100*100 + mark4/25*100 + mark5/5*100 + mark6/30*100)/6;
   System.out.println(" Calculated final mark is " + average);

当我输入数据时,每个标记100%,程序给我100%,但当我输入任何不同的东西时,我得到0%我会把这个例子放得更远

输入您的混合活动标记5:

5
 Enter your lab mark out of 10: 
10
 Enter your assignment mark out of 100: 
100
 Enter your test(s)/quiz mark out of 25: 
25
 Enter your lab test mark out of 5: 
5
 Enter your final exam mark out of 30: 
30
 Calculated final mark is 100.0

示例#2

Enter your hybrid activity mark out of 5: 
4
 Enter your lab mark out of 10: 
8
 Enter your assignment mark out of 100: 
95
 Enter your test(s)/quiz mark out of 25: 
23
 Enter your lab test mark out of 5: 
4
 Enter your final exam mark out of 30: 
28
 Calculated final mark is 0.0

我真的需要帮助我无法弄清楚这是我最后的希望

4 个答案:

答案 0 :(得分:0)

试试这个。

float average = (2/5f*100 + 5/10f*100 + 50/100f*100 + 12/25f*100 + 2/5f*100 + 15/30f*100) / 6;

答案 1 :(得分:0)

您正在使用整数数学,使您的标记变量(mark1,mark2等)加倍而不是整数。

答案 2 :(得分:0)

如果使用Java 8尝试流式传输数字并使用IntStream.average()

答案 3 :(得分:0)

带输出的完整解决方案

public static void main(String[] args) {

        float mark1, mark2, mark3, mark4, mark5, mark6;
        double average;
        Scanner scan = new Scanner(System.in);

        System.out.println (" \nEnter your hybrid activity mark out of 5: ") ;
        mark1 = scan.nextInt();

        System.out.println (" Enter your lab mark out of 10: ") ;
        mark2 = scan.nextInt() ;

        System.out.println (" Enter your assignment mark out of 100: ") ;
        mark3 = scan.nextInt() ;

        System.out.println (" Enter your test(s)/quiz mark out of 25: ") ;
        mark4 = scan.nextInt();      

        System.out.println (" Enter your lab test mark out of 5: ") ;
        mark5 = scan.nextInt() ;

        System.out.println (" Enter your final exam mark out of 30: ") ;
        mark6 = scan.nextInt() ;

        average =  (mark1/5*100 + mark2/10*100 + mark3/100*100 + mark4/25*100 + mark5/5*100 + mark6/30*100)/6;
        System.out.println(" Calculated final mark is " + average);
    }

输出:

Enter your hybrid activity mark out of 5: 
5
 Enter your lab mark out of 10: 
10
 Enter your assignment mark out of 100: 
100
 Enter your test(s)/quiz mark out of 25: 
25
 Enter your lab test mark out of 5: 
5
 Enter your final exam mark out of 30: 
30
 Calculated final mark is 100.0

第二次使用不同的输入,

Enter your hybrid activity mark out of 5: 
4
 Enter your lab mark out of 10: 
8
 Enter your assignment mark out of 100: 
95
 Enter your test(s)/quiz mark out of 25: 
23
 Enter your lab test mark out of 5: 
4
 Enter your final exam mark out of 30: 
28
 Calculated final mark is 86.72222137451172