第一题 问题 A: 各位同学请先完成此题以规范你们的语法
参考代码(Java):
import java.util.Scanner;
/**
* @author 作者 : 吴泽胜
* @createDate 创建时间:2020-5-21 上午11:19:35
*/
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a+b);
}
}
第二题 问题 B: 进程调度1:最高响应比优先
操作系统中高响应比优先调度算法例子
进程 到达时刻 运行时间/ms
P1 0 10
P2 1 1
P3 2 2
P4 3 1
P5 4 5
0时刻P1运行, 10时刻,P1运行完,此时P2-P5的响应比分别为: P2:(1+9)/1=10 P3:(2+8)/2=5 P4:(1+7)/1=8 P5:(5+6)/5=2.2因此执行P2 11时刻。
P2运行完,此时P3-P5的响应比分别为: P3:(2+9)/2=5.5 P4:(1+8)/1=9 P5:(5+7)/5=2.4因此执行P4 11时刻。
P4运行完,此时P3.P5的响应比分别为: P3:(2+10)/2=6 P5:(5+8)/5=2.6因此执行P3,最后执行P5。
所以此算法进程的平均周转时间为:(10+10+12+9+15)/5=56/5=11.2
参考代码(Java)(运行的内存17560 KB>16M,不能通过,换成C语言了):
import java.util.Scanner;
/**
* @author 作者 : 吴泽胜
* @createDate 创建时间:2020-5-21 上午11:30:58
*/
class thread{
String name; //线程名
int start_time; //开始时刻
int run_time; //运行时间
//Set方法
public void Set(String name, int start_time,int run_time){
this.name = name;
this.start_time = start_time;
this.run_time = run_time;
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
thread theads[] = new thread[3];
for(int i = 0 ; i < 3 ; i++){ //输入数据
theads[i] = new thread();
theads[i].Set(sc.next(), sc.nextInt(), sc.nextInt());
}
sc.close();
int k = 0, j = 0, m = 0, i = 0;
//寻找最小时间,最初开始的线程
int time = theads[0].start_time + theads[0].run_time;
for(i = 1 ; i < 3 ; i++){
if( theads[i].start_time < theads[0].start_time){
k = i;
time = theads[i].start_time + theads[i].run_time;
}
else if(theads[i].start_time == theads[0].start_time) {
if (theads[i].run_time < theads[0].run_time) {