解题思路:

1)要一次输入多个值,利用结构体比较方便

2)对于奖学金的评定,有一些关于分数的要求,比较时可以自己为他们排一下序,比如如果不大于80,就不用可虑大于90了,所以把大于90的奖学金放在大于80的语句里面,可以减少一些不必要的资源浪费

注意事项:

1)利用数组,别忘了加[i]

参考代码:

#include<stdio.h>

#include<string.h>

struct Stu{                      //定义结构体 

         char name[20];

         int ave_grade;

         int class_grade;

         char ganbu;

         char west;

         int article;

         int all;

};


int main(){

         struct Stu student[100];

         int N;

         scanf("%d",&N);                        

         int max=0,count=0;                //最多奖学金得主,全部的奖学金总和

         char maxname[20];                //最多奖学金得主名字

         for(int i=0;i<N;i++){

         //printf("name avegrade classgrade ganbu west article\n");            //输入提示

         scanf("%s %d %d %c %c %d",&student[i].name,&student[i].ave_grade,&student[i].class_grade,&student[i].ganbu,&student[i].west,&student[i].article);

         student[i].all=0;                    //赋初值

         if(student[i].ave_grade>80){                                            //平均分>80

                         if(student[i].article>=1){                                                  //院士奖学金发表文章>1

                                 student[i].all+=8000;

                         }

                         if(student[i].ave_grade>85){                            //平均分>85

                                         if(student[i].class_grade>80){                         //五四奖学金评议成绩>80

                                                  student[i].all+=4000;

                                         }

                                        if(student[i].west=='Y'){                                 //西部奖学金

                                                  student[i].all+=1000;

                                         }

                                         if(student[i].ave_grade>90){            //平均分>90

                                                  student[i].all+=2000;                            //成绩优秀奖

                                         }

                         }

         }

         if(student[i].class_grade>80 && student[i].ganbu=='Y'){        //干部奖学金

              student[i].all+=850;

         }

         if(i==0){

         max=student[i].all;

         }else{

         if(student[i].all>max){

         max=student[i].all;

         strcpy(maxname,student[i].name);

         }

         }

         count+=student[i].all;

         } 

         printf("%s\n%d\n%d\n",maxname,max,count);

         return 0;

}


点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论