输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩高于平均分的学生人数。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h> #define N 40 int Average(int score[], int n); int ReadScore(int score[]); int GetAboveAver(int score[], int n); int main() { int score[N], m, n; n = ReadScore(score); /* 输入成绩,返回学生人数 */ printf("Total students are %d\n", n); m = GetAboveAver(score, n); /* 统计成绩在平均分及其上的学生人数 */ if (______________) printf("Students of above average is %d\n", m); return 0; } /* 函数功能:若n>0,则计算并返回n个学生成绩的平均分,否则返回-1 */ int Average(int score[], int n) { int i, sum = 0; for (i=0; i<n; i++) { sum += score[i]; } return ______________; } /* 函数功能:输入学生某门课成绩,当输入成绩为负值时,结束输入,返回学生人数 */ int ReadScore(int score[]) { int i = -1; do{ i++; printf("Input score:"); scanf("%d", &score[i]); }while (__________); return _______; } /* 函数功能:若n>0,则统计并返回成绩在平均分及平均分之上的学生人数,否则返回-1 */ int GetAboveAver(int score[], int n) { int i, count = 0, aver; aver = ______________; /* 计算并打印平均分 */ if (aver == -1) return -1; printf("Average score is %d\n", aver); for (i=0; i<n; i++) { if (score[i] >= aver) count++; } return __________; }
时间: 2024-04-29 17:19:36 浏览: 117
在空白处填写的表达式或语句如下:
- 第一空:Average(score, n) < 0
- 第二空:i < N && score[i] >= 0
- 第三空:i
解释如下:
- 第一空:判断平均分函数返回值是否小于0,如果小于0说明输入的学生成绩个数不合法,直接返回0。
- 第二空:循环读入学生成绩,判断输入的学生成绩是否小于0并且当前输入的学生人数是否小于最大值N,如果均不满足则继续读入,否则结束输入。
- 第三空:返回当前输入的学生人数,即最后一个有效输入的学生成绩的下标加1。注意,此处不能直接返回i,因为最后一个有效输入的学生成绩可能是负数,不应该算在统计人数中。
相关问题
输入某班学生某门课的成绩(最多不超过40人), 当输入为负值时,表示输入结束, 用函数编程统计成绩不低于平均分的学生人数。
### 回答1:
可以使用以下函数来实现统计成绩不低于平均分的学生人数:
```python
def count_above_average(scores):
# 计算平均分
average = sum(scores) / len(scores)
# 统计成绩不低于平均分的学生人数
count =
for score in scores:
if score >= average:
count += 1
return count
```
其中,参数 `scores` 是一个包含所有学生成绩的列表。函数首先计算出平均分,然后遍历列表,统计成绩不低于平均分的学生人数,并返回结果。
在主程序中,可以使用以下代码来输入学生成绩并调用函数:
```python
scores = []
while True:
score = int(input("请输入学生的成绩:"))
if score < :
break
scores.append(score)
count = count_above_average(scores)
print("成绩不低于平均分的学生人数为:", count)
```
在这段代码中,首先创建一个空列表 `scores`,然后使用 `while` 循环不断输入学生成绩,直到输入负值为止。每次输入后,将成绩添加到列表中。最后,调用函数 `count_above_average` 统计成绩不低于平均分的学生人数,并输出结果。
### 回答2:
题目简述:
输入某班学生某门课的成绩,当输入为负值时,表示输入结束。使用函数编程统计成绩不低于平均分的学生人数(最多不超过40人)。
解题思路:
本题需要用到的函数有:输入函数、平均数函数、遍历统计函数。
步骤一:定义输入函数
首先,需要定义一个函数,用来输入学生的成绩,并且当输入为负值时返回结果。代码如下:
```
def input_score():
score_list = []
while True:
score = int(input("请输入学生成绩(负值表示输入结束):"))
if score < 0:
break
score_list.append(score)
return score_list
```
步骤二:定义平均数函数
其次,需要定义一个函数,用来计算学生的平均分。代码如下:
```
def average(score_list):
total_score = sum(score_list)
count = len(score_list)
avg_score = total_score / count
return avg_score
```
步骤三:定义遍历统计函数
最后,需要定义一个函数,用来遍历学生的成绩,并统计不低于平均分的学生人数。代码如下:
```
def count_above_average(score_list):
avg_score = average(score_list)
count = 0
for score in score_list:
if score >= avg_score:
count += 1
return count
```
步骤四:调用函数并输出结果
最后,可以调用以上三个函数,并输出结果。代码如下:
```
score_list = input_score()
count = count_above_average(score_list)
print("不低于平均分的学生人数为:", count)
```
完整代码如下:
### 回答3:
题目分析:
这道题目需要完成如下两个任务:
1. 输入某班学生某门课的成绩;
2. 统计成绩不低于平均分的学生人数。
首先,我们需要计算这门课的平均分,可以通过计算所有学生成绩的总和,除以学生人数,得到平均分。
接下来,我们需要遍历所有学生的成绩,按照以下方法统计不低于平均分的学生人数:
1. 定义一个计数器,初始值为0。
2. 遍历所有学生的成绩,如果成绩不低于平均分,计数器加1。
3. 最终输出计数器的值,即为不低于平均分的学生人数。
函数编程:
我们可以定义函数来完成上述任务,如下:
```
def count_above_average():
scores = []
score_sum = 0
n = 0
while True:
score = int(input('请输入学生成绩:'))
if score < 0:
break
n += 1
score_sum += score
scores.append(score)
average_score = score_sum / n
count = 0
for score in scores:
if score >= average_score:
count += 1
print('不低于平均分的学生人数为:', count)
```
在以上代码中,我们定义了一个名为count_above_average的函数。该函数首先定义了一个空列表scores,用于存储所有学生的成绩;定义了一个计数器n,用于记录学生人数;定义了一个变量score_sum,用于记录所有学生成绩的和。
接下来,我们使用while循环来读入学生成绩,当输入为负值时,表示输入结束,跳出循环。
在循环中,每次读入一个成绩,将其加入scores列表中,并更新计数器n和score_sum。
循环结束后,我们通过计算总成绩除以学生人数,得到平均分average_score。
最后,我们使用for循环遍历scores列表,对于每个成绩如果不低于平均分,计数器count加1。
最终,我们输出计数器count的值,即为不低于平均分的学生人数。
使用:
在编写完成函数后,我们可以调用该函数来实现输入成绩、计算平均分和统计不低于平均分学生人数的功能。
在调用函数时,我们只需要按照以下方法输入学生成绩:
```
请输入学生成绩:90
请输入学生成绩:80
请输入学生成绩:70
请输入学生成绩:-1
```
使用负值作为输入结束标志。
完整代码:
```
def count_above_average():
scores = []
score_sum = 0
n = 0
while True:
score = int(input('请输入学生成绩:'))
if score < 0:
break
n += 1
score_sum += score
scores.append(score)
average_score = score_sum / n
count = 0
for score in scores:
if score >= average_score:
count += 1
print('不低于平均分的学生人数为:', count)
# 调用函数
count_above_average()
```
c语言输入某班学生某门课的成绩(最多不超过40人), 当输入为负值时,表示输入结束, 用函数编程统计成绩不低于平均分的学生人数。
好的,我可以帮您解决这个问题。
以下是一个简单的 C 代码实现,用于输入学生的成绩并计算平均分和不低于平均分的学生人数:
```c
#include <stdio.h>
int main() {
int scores[40];
int sum = 0, count = 0;
float average;
int i = 0;
while (1) {
printf("请输入第 %d 个学生的成绩:", i+1);
scanf("%d", &scores[i]);
if (scores[i] < 0) {
break;
}
sum += scores[i];
i++;
}
if (i == 0) {
printf("没有输入成绩!\n");
return 0;
}
average = (float) sum / i;
for (int j = 0; j < i; j++) {
if (scores[j] >= average) {
count++;
}
}
printf("平均分为:%.2f\n", average);
printf("不低于平均分的学生人数为:%d\n", count);
return 0;
}
```
该代码使用了一个数组 `scores` 来存储输入的成绩,使用一个循环来读取成绩并累加到 `sum` 变量中,同时统计输入的成绩个数。在输入结束后,计算平均分并使用另一个循环来统计不低于平均分的学生人数。
注意,此代码没有对输入的成绩进行任何错误检测或处理,如有需要,请自行添加。
阅读全文