问题 A: 进程调度1—静态非剥夺式优先级调度计算平均作业周转时间

题目描述
要求输入3个进程的信息,假设这些进程均是在0时刻同时到达,若进程调度采用非剥夺式静态优先级(优先数数值大的表示优先级比较高;如果遇到优先级一样,按照输入顺序执行。),计算并输出平均作业周转时间。
输入格式

程序要求输入3行,以回车符号作为分隔,每行有3个数据,以空格作为分隔。首先输入一个字符串(长度小于等于10),为进程名,第2个数据类型为整型,表示进程的优先数,第3个数据类型为整型,表示进程的运行时间。

输出格式
输出结果为一个浮点数,保留到小数点后一位,为系统的平均作业周转时间。
输入样例 复制
P1 1 1 P2 2 2 P3 3 3
输出样例 复制
4.7

//C++
#include<stdio.h>
struct PG{
    char name[10];
    int sql;
    int time;
}process;
 
void input(struct PG p[]){
    for(int i=0;i<3;i++){
        scanf("%s %d %d",p[i].name,&p[i].sql,&p[i].time);
    }
}
    void count(struct PG p[]){
    float sum=0,result=0;
    for(int i=0;i<3;i++){
        for(int j=0;j<i;j++){
            if(p[i].sql>p[j].sql){
                struct PG temp;
                temp=p[i];
                p[i]=p[j];
                p[j]=temp;
            }
        }
 
    }
         
    sum=(float)p[0].time+(p[0].time+p[1].time)*2+p[2].time;
    result=sum/3;
    printf("%.1f",result);
    }
int main(){
        struct PG p[3];
        input(p);
        count(p);
        return 0;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇治小抹茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值