统计高于平均分的人数 【问题描述】输入若干学生成绩,统计高于平均分的人数。输入成绩用空格分隔,用-1做为输入成绩数据的结束标志。 【输入形式】一组用空格分开的整数,用-1结束 【输出形式】高于平均分的学生人数 【样例输入】70 50 80 -1 【样例输出】2 【样例输入】80 80 80 -1 【样例输出】0 【样例输入】-1 【样例输出】0
时间: 2023-11-13 17:12:04 浏览: 226
下面是 Python 代码实现:
```python
scores = []
while True:
s = input().strip()
if s == "-1":
break
score = int(s)
scores.append(score)
if len(scores) == 0:
print("0")
else:
average_score = sum(scores) / len(scores)
num_above_average = sum(score > average_score for score in scores)
print(num_above_average)
```
这段代码首先读取输入的学生成绩,直到输入 `-1` 为止。然后,如果输入的成绩个数为 0,输出 `0`;否则,计算平均分和高于平均分的人数,并输出结果。
注意,这里假设输入的成绩都是合法的整数,如果输入的字符串不能转换为整数,程序会抛出异常。如果需要更加健壮的输入处理,可以使用 Python 内置模块 `re` 或第三方库 `pandas` 等。
相关问题
用python编写一个程序,输入若干学生成绩,统计高于平均分的人数。输入成绩用空格分隔,用-1做为输入成绩数据的结束标志。
好的,这道题目很简单,可以用以下代码实现。
```python
scores = []
while True:
score = input("请输入学生成绩:")
if score == "-1":
break
scores.append(float(score))
avg_score = sum(scores) / len(scores)
num_above_avg = sum(1 for score in scores if score > avg_score)
print("平均分是:", avg_score)
print("高于平均分的人数是:", num_above_avg)
```
希望对你有帮助!
题目描述 有一个班有若干名同学参加了C语言考试,现有这些同学的成绩,请计算他们的平均成绩,并输出高于平均成绩的人数。 输入 输入数据有多组,第1行的整数T表示测试数据的组数。后面有T行,每行的第1个数n(n<=30)表示该组测试数据中的人数,后跟n个同学的成绩(均为0到100之间的整数),各成绩之间用空格分隔。 输出 对于每组测试数据,输出结果单独占一行,分别输出平均成绩及高于平均成绩的人数,平均成绩输出两位小数,数据之间用一个空格分隔。
这是一道比较典型的输入输出题目,需要用到循环和数组,下面是一份实现代码:
```c
#include <stdio.h>
int main() {
int T, n, i, j, sum, count;
int scores[30];
double avg;
scanf("%d", &T);
for (i = 0; i < T; i++) {
scanf("%d", &n);
sum = 0;
count = 0;
for (j = 0; j < n; j++) {
scanf("%d", &scores[j]);
sum += scores[j];
}
avg = (double)sum / n;
for (j = 0; j < n; j++) {
if (scores[j] > avg) {
count++;
}
}
printf("%.2lf %d\n", avg, count);
}
return 0;
}
```
首先读入测试数据的组数 `T`,然后用一个 `for` 循环处理每组测试数据。对于每组测试数据,先读入同学的人数 `n`,然后用一个循环读入每个同学的成绩并计算总分 `sum`。接着计算平均成绩 `avg`,再用一个循环计算高于平均成绩的人数 `count`。最后用 `printf` 输出结果。
需要注意的是,题目中要求平均成绩输出两位小数,可以通过在 `printf` 中使用 `"%.2lf"` 格式字符串来实现。
阅读全文