9-6 按等级统计学生成绩

本文介绍了一个使用C语言实现的学生信息管理系统中的一部分:学生成绩等级统计功能。通过输入学生人数及每个学生的学号、姓名和成绩,程序能够自动判断并输出每个学生的成绩等级(A、B、C、D),同时统计不及格人数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 按等级统计学生成绩 
#include <stdio.h>
#define N 10

struct Student {
	char num[15];
	char name[15];
	int score;
	char grade;
};

void set_grade (struct Student *p, int n, int *f);

int main(void)
{
	int i, n;
	int fail = 0;
	struct Student s[N];
	
	printf("请输入学生人数:");
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		printf("学生%d信息\n",i+1);
		printf("学号:");
		scanf("%s",s[i].num);
		printf("姓名:");
		scanf("%s",s[i].name);
		printf("成绩:");
		scanf("%d",&s[i].score);
	}
	
	set_grade (s,n,&fail);
	printf("学生成绩信息\n");
	printf("姓名\t等级\n");
	for (i=0;i<n;i++)
	{
		printf("%s\t",s[i].name);
		printf("%c\n",s[i].grade);
	}
	printf("不及格人数:%d\n",fail);
	
	return 0;
}

void set_grade (struct Student *p, int n, int *f)
{
	int i;
	*f = 0;
	for (i=0;i<n;i++,p++)
	{
		if (p->score>=85&&p->score<=100)
		{
			p->grade = 'A';
		}
		else if (p->score>=70&&p->score<=84)
		{
			p->grade = 'B';		
		}
		else if (p->score>=60&&p->score<=69)
		{
			p->grade = 'C';		
		}		
		else 
		{
			p->grade = 'D';
			(*f)++;				
		}
	}
}

 

### PTA 6-2 实现按等级统计学生成绩 为了实现按等级统计学生成绩的功能,可以创建一个函数 `set_grade` 来处理成绩并设定相应的等级。此过程涉及遍历学生列表,根据给定的成绩范围分配字母等级,并记录不及格的学生数量。 对于每一个学生成绩,如果成绩大于等于90,则被标记为&#39;A&#39;;当成绩位于80至89之间时,获得&#39;B&#39;级;70到79之间的成绩对应&#39;C&#39;级别;而60到69则被评为&#39;D&#39;;低于60分为&#39;E&#39;[^3]。下面是一个具体的C语言代码示例来完成这项工作: ```c #include <stdio.h> struct student { char grade; }; int set_grade(struct student *p, int n) { int fail_count = 0; for (int i = 0; i < n; ++i) { int score; scanf("%d", &score); if (score >= 90) p[i].grade = &#39;A&#39;; else if (score >= 80) p[i].grade = &#39;B&#39;; else if (score >= 70) p[i].grade = &#39;C&#39;; else if (score >= 60) p[i].grade = &#39;D&#39;; else { p[i].grade = &#39;E&#39;; fail_count++; } } return fail_count; } ``` 这段程序首先定义了一个名为 `student` 的结构体用于存储每位同学的信息,在这里只包含了成绩对应的等级字段。接着实现了 `set_grade` 函数接收指向第一个元素地址的指针以及数组大小作为参数。通过循环读取输入的成绩值,并依据上述规则为其指定相应等级的同时也更新了失败计数器变量 `fail_count`。最终返回的是所有参与评估的同学中有多少人的成绩属于不合格(&#39;E&#39;)的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值