题目链接:http://www.dotcpp.com/oj/problem1269.html


解题思路:简单的方法就是利用结构体,创建一个结构体数组,对其中的成员进行操作,然后比较即可

注意事项:对于数组要初始化,否则自增无意义

参考代码:

#include<stdio.h>

struct student

{

    char name[20];

    int aver;

    int py;

    char mon;

    char west;

    int paper;

};

int main()

{

    int i,T;

    int j;

    struct student stu[100];

    int sum_max[100]={0},sum_price = 0;

    int maxp;

    scanf("%d",&T);

    getchar();

    for(i = 0;i < T;i++)

    {

        scanf("%s",stu[i].name);

        scanf("%d %d",&stu[i].aver,&stu[i].py);

        getchar();

        stu[i].mon = getchar();

        getchar();

        stu[i].west=getchar();

        scanf("%d",&stu[i].paper);

        getchar();

    }

    for(i = 0;i < T;i++)

    {

        if(stu[i].aver>80&&stu[i].paper>=1)

            sum_max[i]+=8000;

        if(stu[i].aver>85&&stu[i].py>80)

            sum_max[i]+=4000;

        if(stu[i].aver>90)

            sum_max[i]+=2000;

        if(stu[i].aver>85&&stu[i].west=='Y')

            sum_max[i]+=1000;

        if(stu[i].py>80&&stu[i].mon=='Y')

            sum_max[i]+=850;

    }maxp = sum_max[0];

    for(i = 0;i < T;i++)

    {

        if(sum_max[i]>maxp)

        {

            maxp = sum_max[i];

            j = i;

        }

    }

    for(i = 0;i < T;i++)

    {

        sum_price+=sum_max[i];

    }

    printf("%s\n",stu[j].name);

    printf("%d\n",sum_max[j]);

    printf("%d\n",sum_price);

    return 0;

}

仅供参考,欢迎提建议!

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论