用冒泡法对输入十个成绩求最大值和最小值还有平均值
时间: 2023-06-09 07:02:46 浏览: 97
好的,针对你的问题,我可以为你提供以下的代码实现:
```python
# 定义输入的十个成绩
scores = [89, 67, 92, 55, 78, 81, 69, 73, 99, 88]
# 冒泡排序
for i in range(len(scores)):
for j in range(i+1, len(scores)):
if scores[i] > scores[j]:
scores[i], scores[j] = scores[j], scores[i]
# 求最大值和最小值
max_score = scores[-1]
min_score = scores[0]
# 求平均值
avg_score = sum(scores) / len(scores)
# 输出结果
print("最大值为:", max_score)
print("最小值为:", min_score)
print("平均值为:", avg_score)
```
运行上述代码,会输出以下的结果:
```
最大值为: 99
最小值为: 55
平均值为: 79.1
```
以上就是利用冒泡法求解输入十个成绩的最大值、最小值以及平均值的方法。希望能够对你有所帮助。
相关问题
c++用冒泡法输入十个数,得出最大值最小值和平均值
好的,感谢您的提问!下面是答案:
请看下面的 C 语言代码,其中演示了如何使用冒泡法输入十个数,并得出最大值、最小值和平均值:
```c
#include <stdio.h>
int main() {
int nums[10];
int i, j, temp;
float sum = 0, avg;
int max = 0, min = 0;
// 输入十个数
printf("请输入十个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
}
// 冒泡排序
for (i = 0; i < 9; i++) {
for (j = 0; j < 9 - i; j++) {
if (nums[j] > nums[j+1]) {
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
// 计算最大值和最小值
max = nums[9];
min = nums[0];
// 计算平均值和总和
for (i = 0; i < 10; i++) {
sum += nums[i];
}
avg = sum / 10;
// 输出结果
printf("最大值为:%d\n", max);
printf("最小值为:%d\n", min);
printf("平均值为:%.2f\n", avg);
return 0;
}
```
注意:以上代码中的冒泡排序只是一种简单的排序方法,不一定是最优的方法。另外,以上计算最大值、最小值和平均值的方式也可以使用其他的算法来实现。
定义一个函数,实现,求几个成绩的最高分、最低分和平均分,求最大值、最小值可采用冒泡法,在计算平均分过程中,通过循环获取分数和个数和分数总分,最终通过相除获得平均值,因为输入的分数个数不明确,所以在函数中,采用不定长参数
来接受输入的成绩,下面是函数的实现:
```python
def calculate_scores(*scores):
max_score = scores[0]
min_score = scores[0]
total_score = 0
count = len(scores)
for score in scores:
if score > max_score:
max_score = score
if score < min_score:
min_score = score
total_score += score
average_score = total_score / count
return max_score, min_score, average_score
```
这个函数使用不定长参数接收输入的成绩,通过循环遍历成绩列表来找到最大值和最小值,同时通过统计分数总和和个数来计算平均分。最后,将最大值、最小值和平均分以元组的形式返回。
阅读全文