华为机试操作系统任务数组

原创 2013年12月02日 15:15:30

操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中,系统任务的优先级 < 50,用户任务的优先级 >= 50 <= 255。优先级大于255的为非法任务,应予以剔除。现有一任务队列task[],长度为ntask中的元素值表示任务的优先级,数值越小,优先级越高。函数scheduler实现如下功能,将task[] 中的任务按照系统任务、用户任务依次存放到 system_task[] 数组和 user_task[] 数组中(数组中元素的值是任务在task[] 数组中的下标),并且优先级高的任务排在前面,数组元素为-1表示结束。
例如:task[] = 

{0, 30, 155, 1, 80, 300, 170, 40, 99}

system_task[] = {0, 3, 1, 7, -1}    user_task[] = {4, 8, 2, 6, -1}

函数接口    void scheduler(int task[], int n, int system_task[], int user_task[]) 

#include
using namespace std;
void sort(int a[],int n)
{
int i=0,j=0,temp;
for(;i
for(j=0;j
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
void scheduler(int task[], int n, int system_task[], int user_task[])
{
int i,sys_count=0,u_count=0;
for(i=0;i
{
if(task[i]<50)
system_task[sys_count++]=task[i];
else if(task[i]>=50&&task[i]<=255)
user_task[u_count++]=task[i];
}
system_task[sys_count]=-1;
user_task[u_count]=-1;
sort(system_task,sys_count);
sort(user_task,u_count);
int j;
for(j=0;j
for(i=0;i
{
if(system_task[j]==task[i])
{
system_task[j]=i;
break;
}
}
for(j=0;j
for(i=0;i
{
if(user_task[j]==task[i])
{
user_task[j]=i;
break;
}
}
}
void main()
{
int task[]={0, 30, 155, 1, 80, 300, 170, 40, 99,33,50};
int n=sizeof(task)/sizeof(int)+1;
int *system_task=new int[n];
int *user_task=new int[n];
scheduler(task,n-1,system_task,user_task);
int i=0;
cout<<"系统数组为"<<endl;
while(system_task[i]!=-1)
cout<<system_task[i++]<<" ";
i=0;
cout<<"用户数组为"<<endl;
while(user_task[i]!=-1)
cout<<user_task[i++]<<" ";
cout<<endl;
}

华为机试—操作系统任务调度

题目:操作系统任务调度问题 操作系统任务分为系统任务和用户任务两种。其中, 系统任务的优先级 = 50且 现有一任务队列task[],长度为n,task中的元素值表示任务的优先级,数值越...

华为机试——操作系统任务调度问题

操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中,系统任务的优先级 ,用户任务的优先级 >= 50且 。优先级大于255的为非法任务,应予以剔除。现有一任务队列task[],长度为n...
  • hyg0811
  • hyg0811
  • 2013年07月17日 16:07
  • 910

华为机试练习ex013_cpp之操作系统任务调度问题

// 操作系统的任务调度问题 #include using namespace std; void scheduler(int task[], int n, int system_task[], i...

[华为机试真题]72.操作系统任务调度问题

题目操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中, 系统任务的优先级 < 50,用户任务的优先级 >= 50且 ...

华为招聘机试整理8:操作系统任务调度问题

华为招聘机试整理8:操作系统任务调度问题 题目:操作系统任务调度问题 操作系统任务分为系统任务和用户任务两种。其中,系统任务的优先级 = 50且 例如: task[] = {0, 30,...

华为机试——03操作系统任务调度问题

/* 3、操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中, 系统任务的优先级 = 50且 ...

华为招聘机试整理7:给定一个数组input[]

华为招聘机试整理7:给定一个数组input[] 题目:给定一个数组intput[] 如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度n为偶数,则...

华为机试—约瑟夫环替换计数器m(数组解决)

题目描述: 输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知),和初始计数值m。从数列首位置开始计数,计数到m后,将数列该位置数值替换计数值m,并将数列该位置数值出列,然后从下一位...

华为机试——整形数组合并

题目:整型数组合并将两个整型数组按照升序合并,并且过滤掉重复数组元素。#include #include #includeusing namespace std;int main() { in...

华为机试:二维数组操作、公共字串计算

1.二维数组操作 2.公共字串计算
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:华为机试操作系统任务数组
举报原因:
原因补充:

(最多只允许输入30个字)