int cal_score(int score[], int judge_type[], int n) {
int i =0;
int sum1=0, sum2=0; int count1=0,count2=0; int zhongfen=0; for(i =0; i sum1+=score[i]; if(count2==0) { } } else //if(2==judge_type[i]) { sum2+=score[i]; count2++;} count1++; zhongfen = sum1; } else{ } zhongfen = int ((sum1/count1)*0.6 +(sum2/count2)*0.4); return zhongfen; } int main() { int score[]={1,1,1,1,1,1}; int judge_type[] = {2,2,2,1,2,2}; printf(\"%d\judge_type, 6) ); } 2、给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。 例如:input[] = {3, 6, 1, 9, 7} output[] = {3, 7, 9, 6, 1}; input[] = {3, 6, 1, 9, 7, 8} output[] = {1, 6, 8, 9, 7, 3} 函数接口 void sort(int input[[, int n, int output[]) #include void sort(int input[], int n, int output[]) { int i,j; int temp =0; for(i =0; i temp = input[j]; input[j] = input[j+1]; input[j+1] = temp; if(n%2 ==0) { } } for(i =0 ; i { } for(i =0; i for(i=0; i<(n-1)/2; i++) { } output[(n-1)/2]= input[n-1]; for(i = 0; i<(n-1)/2; i++) { } output[(n-1)/2+1+i] = input[n-3-2*i]; output[i] = input[2*i+1]; } } for(i = 0 ; i printf(\"%d\output[i]); int main() { int input1[] = {3, 6, 1, 9, 7}; int input2[] = {3, 6, 1, 9, 7, 8}; int output1[5] = {0}; int output2[6] = {0}; sort( input1, 5,output1) ; } 3、操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中,系统任务的优先级 < 50,用户任务的优先级 >= 50且 <= 255。优先级大于255的为非法任务,应予以剔除。现有一任务队列task[],长度为n,task中的元素值表示任务的优先级,数值越小,优先级越高。函数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} #include sort(input2, 6, output2) ; struct Table { int number; int value; }; void scheduler(int task[], int system_task[], int user_task[],int n) { int i ; int j; struct Table temp; //struct Table table[n];//n 必需为常量 struct Table *table = (struct Table *)malloc(sizeof(struct Table)*n); int system_count=0,user_count=0; for(i =0; i for(i=0; i else if(table[i].value<=250) { user_task[user_count]=table[i].number; user_count++; } } system_task[system_count]=-1; user_task[user_count]= -1; free(table); } int main() { int task[] = {0, 30, 155, 1, 80, 300, 170, 40, 99}; int n=9; for(int i=0,count_sys=0,count_user=0;i<9;i++) { if(task[i]<50) count_sys++; else if(task[i]<=255) count_user++; else continue; } int *system_task=(int *)malloc(count_sys*sizeof(int)+4); int *user_task=(int *)malloc(count_user*sizeof(int)+4); scheduler(task, system_task, user_task,9); int *p = system_task; int *q = user_task; printf(\"%d%d\\n\ for(i=0;i } 因篇幅问题不能全部显示,请点此查看更多更全内容