我的评分系统代码无法正常工作

时间:2019-01-06 16:48:03

标签: java

  

如果等级与下一个5的倍数之间的差较小   然后,向上舍入为下一个整数倍。如果等级的值是   小于38,则不会进行四舍五入,因为结果仍然会失败   成绩。

我尝试了很多,但是测试用例失败了。

public class Solution {
    public static void main(String[] args){
        Scanner in =new Scanner(System.in);
        int n =in.nextInt();
        if(n<30){
             break;
         }
        for(int i =0; i<n-1;i++){
            if((i/5)>3){
                System.out.println(i+2);
            }else {
                System.out.println(i);
            }
        }
    }
}

输入

4
73
67
38
33

预期

75
67
40
33

输出

0
1
2

1 个答案:

答案 0 :(得分:0)

由于您的问题模棱两可,我不确定我是否理解您希望通过代码实现的目标,但是除了分数低于30并中断循环之外,此代码还不能对分数进行任何处理。您的印刷声明未考虑等级本身。 // if语句

您的代码现在首先说:“嘿,我的成绩是否低于30?如果是,请停止执行。否则,继续。

//循环

然后您的代码说:“好吧,如果等级大于或等于30,则从0循环到那个等级1。 在进行计数时,如果计数除以5大于3,则输出计数+2。否则打印计数”

例如,让输入为n = 33。 //如果

33小于30吗?错误,请继续循环

//循环

从0到29计数 i = 0 (0/5)> 3吗?错误,继续进行 其他 打印(0)

在这种情况下,前5个输出分别为:0、1、2、3、4。 (调用整数除法可去除小数)

希望这会有所帮助:)