2016年 成渝校招软件上机练习

来源:互联网 发布:php代码批量替换工具 编辑:程序博客网 时间:2024/06/07 05:31







第一题:




代码:


/* * 老师想知道从某某同学到某某同学当中,分数最高的是多少。 * 现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 */ #include<stdio.h>#include<string.h>#define N 30000#define M 5000 /* * 定义一个数组,这个数组成员包括学生的编号,以及成绩 */  struct student {int Num;int score;}; /* 千万要记得这个分号不可少 */ /* * 将每个分数与每次比较较大的值进行比较并返回其中最高分  */  int sort(struct student stu[], int min, int max) {int i, maxscore = stu[min].score;for ( i = min; i < max + 1; i++ ){if ( maxscore < stu[i].score ){    maxscore = stu[i].score;}}return maxscore;}/*  * 成绩更新函数,根据相应的输入编号,并对其进行成绩更改  */ void UpdateScore( struct student stu[], int n, int score1){stu[n].score = score1;} int main(void){int   n, m, score0;    /* 学生人数 n,操作数 m, 学生分数 score0 */char  e[20];         /* e 表示操作数 */int   i , j = 0, k,  Num1, Num2;      /* 更改成绩的学生编号 Num,查询时候的数字编号Num1, Num2 */struct student a[N];int    Output[128] = {0}; /* 将要输出的数据进行保存 *//* 输入学生人数 n, 以及操作数 m*/scanf("%d %d", &n, &m);for( i = 1; i < n + 1; i++){scanf("%d", &score0);a[i].Num = i;a[i].score = score0;}scanf("\n");/* 输入操作数 C * 当C为‘Q’的时候,表示这是一条询问操作,它询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少。     * 当C为‘U’的时候,表示这是一条更新操作,要求把ID为A的学生的成绩更改为B。     */while (m--){scanf("%s%d%d", &e,&Num1, &Num2 );       if ('Q' == e[0]){   Output[j] = sort( a, Num1, Num2);   j++;}else if ('U' == e[0]){UpdateScore( a, Num1, Num2);}}for ( k = 0; k < j; k++){printf("%d\n", Output[k]);}}



2 0
原创粉丝点击