分支-17. 统计学生成绩(15)


本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:

  • 大于等于90分为A;
  • 小于90且大于等于80为B;
  • 小于80且大于等于70为C;
  • 小于70且大于等于60为D;
  • 小于60为E。

    输入格式:

    输入在第1行中给出1个正整数N(<=1000),即学生人数;第2行中给出N个学生的百分制成绩,其间以空格分隔。

    输出格式:

    在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。

    输入样例:
    7
    77 54 92 73 60 65 69
    
    输出样例:
    1 0 2 3 1
    程序:

    #include 
        
        
         
         
    int main(void) {
    	int n, score;
    	int count_A = 0, count_B = 0, count_C = 0, count_D = 0, count_E = 0;
    	scanf("%d", &n);
    	while(n--) {
    		scanf("%d", &score);
    		if(score >= 90)
    			++count_A;
    		else if(score >= 80)
    			++count_B;
    		else if(score >= 70)
    			++count_C;
    		else if(score >= 60)
    			++count_D;
    		else
    			++count_E; 
    	}
    	printf("%d %d %d %d %d\n", count_A, count_B, count_C, count_D, count_E);
    	return 0;
    }
    
        
        


统计学生成绩可以使用C语言分支结构来实现。可以通过输入学生的各科成绩信息,计算出每个人的总成绩,并根据总成绩进行排名和统计。以下是一个简单的示例代码: ``` #include <stdio.h> #include <stdlib.h> #define MaxLength 255 //数据元素 typedef struct { int id;//学号 char name[20];//姓名 int score[5];//英语、政治、专业课1、专业课2的成绩 int total;//总成绩 } studentElement; //顺序表结构 typedef struct { studentElement studentArray[MaxLength]; int length; } seqList; //初始化函数 int InitList(seqList* seqList) { int n; printf("请输入学生人数:"); scanf("%d", &n); seqList->length = n; for (int i = 0; i < n; i++) { printf("请输入第%d个学生的信息:\n", i + 1); printf("学号:"); scanf("%d", &seqList->studentArray[i].id); printf("姓名:"); scanf("%s", seqList->studentArray[i].name); printf("英语成绩:"); scanf("%d", &seqList->studentArray[i].score[0]); printf("政治成绩:"); scanf("%d", &seqList->studentArray[i].score[1]); printf("专业课1成绩:"); scanf("%d", &seqList->studentArray[i].score[2]); printf("专业课2成绩:"); scanf("%d", &seqList->studentArray[i].score[3]); seqList->studentArray[i].total = seqList->studentArray[i].score[0] + seqList->studentArray[i].score[1] + seqList->studentArray[i].score[2] + seqList->studentArray[i].score[3]; } return 1; } //统计函数 void Statistics(seqList* seqList) { int sum = 0; int max = seqList->studentArray[0].total; int min = seqList->studentArray[0].total; for (int i = 0; i < seqList->length; i++) { sum += seqList->studentArray[i].total; if (seqList->studentArray[i].total > max) { max = seqList->studentArray[i].total; } if (seqList->studentArray[i].total < min) { min = seqList->studentArray[i].total; } } printf("总分:%d,平均分:%d,最高分:%d,最低分:%d\n", sum, sum / seqList->length, max, min); } int main() { seqList seqList; InitList(&seqList); Statistics(&seqList); return 0; } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值