/*
* 题目:学生有4个科目,0高数,1英语,2计算机,3政治,学生
信息包括学号,姓名,性别,平均分,最高分。
* 输入第一行为学生人数,从第二行开始按行输入所有学生的信息(
不含平均分和最高分)以及各科成绩,用空格隔开,
* 输出所有学生的学号,姓名,性别,4平均分,5分最高的科目。
*/
#include <stdio.h>
using namespace std;
struct node{
char num[10];//学号。不能用int是因为有些学号是001,
//用char可以使用strcmp比较字典序
char name[20];//姓名
char sex[10];//性别
int score[5];//存放四科成绩以及最高成绩科目的代号
float ave;//个人平均分
};
int main(){
int n;
scanf("%d",&n);
node list[n+1];
for(int i =1;i<=n;i++){//输入函数
scanf("%s %s %s",list[i].num,list[i].name,list[i].sex);
int sum=0,max=0,course=0;
for(int j = 0;j<5;j++) {
if (j <= 3) {
scanf("%d", &list[i].score[j]);
sum += list[i].score[j];
if (list[i].score[j] > max) {
max = list[i].score[j];
course = j;
}
} else {
list[i].score[j] = course;
}
}
list[i].ave = (float )(sum / 4.0);
}
for(int i = 1;i<=n;i++ ){//打印函数
printf("%-4s %-10s %-4s ",list[i].num,list[i].name,list[i].sex);
for(int j = 0;j <4;j++) {
printf("%-5d", list[i].score[j]);
}
printf("%-5.2f ",list[i].ave);
int x=list[i].score[4];
if(x==0){
printf("高数\n");
} else if(x==1){
printf("英语\n");
} else if(x==2){
printf("计算机\n");
} else if(x==3){
printf("政治\n");
}
}
return 0;
}
【C】打印成绩
最新推荐文章于 2024-07-25 16:29:01 发布