PTA 输出学生成绩 (20 分)

本程序接收学生数量和成绩作为输入,统计并输出学生的平均成绩、最高成绩和最低成绩,所有结果保留两位小数,适用于教育统计场景。

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

输出学生成绩 (20 分)
本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。

输入格式:
输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。

输出格式:
按照以下格式输出:

average = 平均成绩
max = 最高成绩
min = 最低成绩
1
2
3
结果均保留两位小数。

输入样例:
3
85 90 95

输出样例:
average = 90.00
max = 95.00
min = 85.00

【代码】

#include <stdio.h>
int main()
{
int n, a[100000];
double ave, max = 0, min = 1000, sum = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
sum += a[i];
}
ave = sum / n;
for (int i = 0; i < n; i++)
{
if (a[i] > max)
max = a[i];
if (a[i] < min)
min = a[i];
}
printf(“average = %.2f\n”, ave);
printf(“max = %.2f\n”,max);
printf(“min = %.2f\n”,min);
return 0;
}
————————————————
版权声明:本文为优快云博主「,,,,,,,,,」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/weixin_43869730/article/details/87937548

### PTA系统输出学生成绩实现方法 在PTA系统中,输出学生成绩通常涉及以下几个方面:定义学生结构体、处理输入数据、设置成绩等级以及最终按照指定格式输出结果。以下是基于C语言的一个完整解决方案。 #### 定义学生结构体 为了存储每位学生的相关信息(如学号、姓名、分数等级),可以使用`struct`来定义一个学生对象: ```c struct student { int num; char name[20]; int score; char grade; }; ``` 此部代码用于创建一个能够保存单个学生基本信息的数据容器[^1]。 #### 处理输入并计算不及格人数 通过标准输入获取学生数量及其具体信息,并调用函数完成成绩等级设定的同时统计不及格的学生数目: ```c int set_grade(struct student *p, int n) { int count = 0; for (int i = 0; i < n; ++i) { if (p[i].score >= 90) p[i].grade = 'A'; else if (p[i].score >= 80) p[i].grade = 'B'; else if (p[i].score >= 70) p[i].grade = 'C'; else if (p[i].score >= 60) p[i].grade = 'D'; else { p[i].grade = 'F'; count++; } } return count; } ``` 上述逻辑实现了根据不同值区间配相应字母评级的功能,同时也记录下所有低于60成绩以便后续报告。 #### 主函数设计与执行流程 主函数负责整体控制流,包括接收用户输入、调用辅助功能模块以及最后的结果展示环节: ```c #include <stdio.h> #define MAXN 10 // 前面已给出set_grade函数声明... int main() { struct student stu[MAXN], *ptr; int n, i, count; ptr = stu; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d%s%d", &(stu[i].num), stu[i].name, &(stu[i].score)); } count = set_grade(ptr, n); printf("The count for failed (<60): %d\n", count); printf("The grades:\n"); for (i = 0; i < n; i++) printf("%d %s %c\n", stu[i].num, stu[i].name, stu[i].grade); return 0; } ``` 这段程序展示了如何利用之前定义的操作集合去解决实际问题——即接受一组学员资料作为参数传入后端算法进行加工再呈现出来[^1]。 #### 使用Python实现相同目标 如果偏好于采用更简洁的语言表达方式,则可考虑如下所示的一种替代方案: ```python n = int(input()) students = [] for _ in range(n): id_, name, chinese_score, math_score = map(str.strip, input().split(' ')) total = sum(map(int, [chinese_score, math_score])) students.append((id_, name, total)) print(f'Total number of students: {len(students)}') print('Student ID\tName\tTotal Score') for s in sorted(students, key=lambda x:x[-1]): print(f'{s[0]} \t{s[1]} \t{s[2]}') ``` 这里我们假设每条记录由四个字段组成:别是ID编号、名字字符串形式表示;两门功课得别对应语文科目(`ai`)跟数学科目(`bi`)数值型变量[^2]^.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值