【C】打印成绩

/*
 * 题目:学生有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;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值