算法笔记第三章练习题_成绩排名

输入:

 

输出:

思路:

1:令结构体Student型记录单个学生的姓名,学号,分数.记Student型变量temp存放临时输入的数据,ans_max存放最高学生的成绩ans_min存放最低学生的成绩

2.在读入数据前初始化ans_max和ans_min的初值,分别设置为-1和101,方便更新

注意:字符数组name和id的大小必须至少是11不能设置为10,不然会报错,应为字符数组的最后一位需要留给'\0',所以数组大小必须比题目的要求至少大一位。

 

# include <cstdio>
struct Student 
{
    char name[15];
    char id[15];
    int score;
}temp,ans_max,ans_min;
//temp存放临时数据,ans_max为最高分数的学生,ans_min为最低分数的学分
int main()
{
    
    int n;
    scanf("%d",&n);
    ans_max.score = -1;           //最高分初始为-1
    ans_min.score = 101           //最低分初始为101
    for (int i = 0;i < n;i++)
    {
        
        scanf("%s%s%d",temp.name,temp.id,&temp.score)  //读取学生信息
        if(temp.score>ans_max.score) ans_max = temp;    //该学生分数更高,更新
        if(temp.score<ans_min.score)  ans_min = temp;   //该学生分数更低,更新
    } //这两句if语句好好想一想,可以适当的举个例子
    printf("%s %s\n",ans_max.name,ans_max.id);
    printf("%s %s\n",ans_min.name,ans_min.id);        
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章