用函数求出平均分、最高分和最低分 有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后,能求出最高分、最低分和平均分
时间: 2023-05-31 14:20:55 浏览: 171
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
5星 · 资源好评率100%
### 回答1:
可以写一个函数,接收一个一维数组作为参数,然后在函数内部遍历数组,找出最高分和最低分,并计算出平均分。最后将这三个值返回给主函数即可。具体实现可以参考下面的代码:
```python
def calc_scores(scores):
max_score = scores[0]
min_score = scores[0]
total_score = 0
for score in scores:
if score > max_score:
max_score = score
if score < min_score:
min_score = score
total_score += score
avg_score = total_score / len(scores)
return max_score, min_score, avg_score
# 测试代码
scores = [80, 90, 70, 85, 95, 60, 75, 88, 92, 78]
max_score, min_score, avg_score = calc_scores(scores)
print("最高分:", max_score)
print("最低分:", min_score)
print("平均分:", avg_score)
```
输出结果:
```
最高分: 95
最低分: 60
平均分: 81.3
```
### 回答2:
题目要求我们使用一个函数来求出一个一维数组中的平均分、最高分和最低分。我们首先需要明确,一个数组中最高分和最低分的值,可能是数组中的任意一个元素,因此我们需要在函数中遍历数组来找到这两个值。
以下是解决这个问题的步骤:
步骤1:声明一个函数,其中输入参数是一个包含成绩的一维数组,输出参数包括平均分、最高分和最低分。
步骤2:在函数中,遍历数组,定位到最高分和最低分的元素,并用变量记录下来。
步骤3:遍历数组,计算出数组中所有元素的总和并计算平均分。
步骤4:输出结果。
下面是一个示例代码(使用C语言实现):
#include<stdio.h>
void score_statistics(int score[], float* average, int* high, int* low) {
// 声明变量,初始值设置为数组的第一个元素
int max = score[0], min = score[0], sum = 0;
*average = 0.0;
// 遍历数组
for (int i = 0; i < 10; i++) {
// 判断是否为最高分或最低分
if (score[i] > max) max = score[i];
if (score[i] < min) min = score[i];
// 累加总和
sum += score[i];
}
// 计算平均分
*average = (float)sum / 10.0;
// 将计算结果赋值给输出变量
*high = max;
*low = min;
}
int main() {
int score[10] = {89, 78, 96, 65, 87, 92, 74, 81, 86, 93};
float average;
int high, low;
score_statistics(score, &average, &high, &low);
printf("平均分:%f, 最高分:%d, 最低分:%d\n", average, high, low);
return 0;
}
在以上的示例代码中,我们定义了一个名为score_statistics的函数,用于计算最高分、最低分和平均分。该函数有四个参数,第一个参数是包含成绩的一维数组(score),另外三个参数是指针类型,用于输出平均分、最高分和最低分的值(average、high、low)。
这个函数内部使用了一个for循环来遍历数组中的每个元素,找到最高分和最低分的值。累加数组元素的值以计算平均值。最后,我们将平均分、最高分和最低分的值赋给输出变量,以便在主函数中打印出来。
使用这个函数,我们可以很方便地获得一个数组中成绩的平均分、最高分和最低分的值,提高我们的编程效率。
### 回答3:
假设用一个数组scores[]来存储学生成绩,那么此函数可以设计如下:
void getScoreStat(double scores[], int size, double &maxScore, double &minScore, double &aveScore)
{
//初始化maxScore和minScore为数组中第一个元素
maxScore = minScore = scores[0];
//遍历数组,寻找最高分和最低分
for(int i=1; i<size; ++i) {
if(scores[i] > maxScore)
maxScore = scores[i];
if(scores[i] < minScore)
minScore = scores[i];
}
//求出平均分
double sum = 0;
for(int i=0; i<size; ++i)
sum += scores[i];
aveScore = sum / size;
}
函数getScoreStat()的输入参数分别为scores[](学生成绩数组)、size(数组大小),而输出参数有三个,即maxScore(最高分)、minScore(最低分)和aveScore(平均分)。getScoreStat()的实现非常简单,其核心思想就是遍历数组,从中找出最高分和最低分,随后再求出平均分就好了。需要注意一点的是,在getScoreStat()的实现中我们将maxScore和minScore初始化为数组中的第一个元素,以此来方便接下来的遍历。如果你对此有疑惑,可以自己再思考一下。
阅读全文