PTA BASIC 1004

原题目链接

题解与感想

   一开始的想法就是用结构体来解决,但是当时不清楚对结构体中某一元素构成的数组排序后原结构体怎么表示,后来想想,不需要排序啊,只需要找出最大最小值即可,记录下来,直接print完事。


#include"stdio.h"
struct student
{
/*为什么保存10个字符串需要11个空间?
ANS:字符串要多1个用来存放’\0’(结束标识符)
*/
 char name[11];
 char id[11];
 int score;
};

int main()
{   
    int n;
    scanf("%d",&n);
    struct student stu[n];
    for(int i=0;i<n;i++)
    {   scanf("%s %s %d",&stu[i].name,&stu[i].id,&stu[i].score);
    }
    int max=0,min=0;
    for(int i=1;i<n;i++)
    {   if(stu[i].score<stu[min].score){min=i; continue;}
         /* 已经是最大值了自然不可能是最小值了,直接跳出本次循环 */
        if(stu[i].score>stu[max].score){max=i;}
    }
    printf("%s %s\n",stu[max].name,stu[max].id);
    printf("%s %s",stu[min].name,stu[min].id);
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容