java编写程序实现学时转换为学分,16个学时为1个学分,学分最小是0.5,2退3进,7退8进用math方法
时间: 2023-11-09 22:04:15 浏览: 34
下面是Java代码实现:
```
import java.util.Scanner;
public class CreditConversion {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 读入学时
System.out.print("请输入学时:");
double hours = input.nextDouble();
// 计算学分
double credits = hours / 16.0;
credits = Math.max(0.5, credits); // 学分最小为0.5
if (credits >= 7.5) { // 判断是否需要进位
credits = Math.ceil(credits);
} else if (credits >= 2.5) { // 判断是否需要退位
credits = Math.round(credits);
} else {
credits = Math.floor(credits);
}
// 输出结果
System.out.println("学分为:" + credits);
}
}
```
其中,`Math.max(a, b)` 返回 `a` 和 `b` 中较大的一个;`Math.floor(x)` 返回不大于 `x` 的最大整数;`Math.round(x)` 返回最接近 `x` 的整数;`Math.ceil(x)` 返回不小于 `x` 的最小整数。