【C语言】统计学生平均成绩与及格人数

本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

输入格式:

输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

输出格式:

按照以下格式输出:

average = 成绩均值
count = 及格人数

其中平均值精确到小数点后一位。

输入样例:

5
77 54 92 73 60

输出样例:

average = 71.2
count = 4

代码:

#include <stdio.h>
int main()
{
	int n, grades, sum = 0, count = 0;
	double average = 0;
	scanf("%d\n", &n);
	if (n > 0)
	{
		for (int i = 1; i <= n; i++)
		{
			scanf("%d", &grades);
			if (grades >= 60)
			{
				count++;
			}
			sum += grades;
		}
		average = (double)sum / n;
	}
	printf("average = %.1lf\ncount = %d", average, count);
	return 0;
}

提交截图:

解题思路:

本题无太大难点,只须注意先考虑没有学生的情况即可。

假设您已经将学生成绩存储在一个二维列表中,命名为`grades`,每一行代表一个学生,每一列代表一门课程。那么,您可以使用以下代码计算平均成绩统计及格人数: ```python # 计算平均成绩 n = len(grades) # 学生数 m = len(grades[0]) # 课程数 avg_scores = [] # 平均成绩列表 for i in range(n): avg_score = sum(grades[i]) / m # 计算每个学生平均成绩 avg_scores.append(avg_score) # 统计及格人数 num_pass = 0 # 及格人数 for i in range(n): if all(grade >= 60 for grade in grades[i]): # 如果所有成绩都不低于60 num_pass += 1 # 及格人数加1 ``` 解释一下上述代码: - `n = len(grades)` 和 `m = len(grades[0])` 计算学生数和课程数。`len()`函数返回列表的长度。 - `avg_scores = []` 创建一个新的空列表,用于存储每个学生平均成绩。 - `for i in range(n):` 遍历每个学生。 - `avg_score = sum(grades[i]) / m` 计算每个学生平均成绩。`sum()`函数计算列表中所有元素的和。注意,这里使用了整数除法,结果会自动向下取整。 - `avg_scores.append(avg_score)` 将每个学生平均成绩添加到`avg_scores`列表中。 - `num_pass = 0` 初始化及格人数为0。 - `for i in range(n):` 再次遍历每个学生。 - `if all(grade >= 60 for grade in grades[i])):` 如果该学生所有成绩都不低于60,则执行下一行代码。 - `num_pass += 1` 及格人数加1。 最后,您可以输出平均成绩及格人数: ```python print(avg_scores) print(num_pass) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天の进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值