解题思路:
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 人评分
Pascal三角 (C语言代码)浏览:1252 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:565 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:636 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:593 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:583 |
简单的a+b (C语言代码)浏览:878 |
【矩阵】 (C++代码)浏览:999 |
蛇行矩阵 (C语言代码)浏览:606 |
1126题解浏览:649 |