从键盘输入10个成绩,将这10个成绩按降序排序。并输出排好序的10个成绩。
时间: 2023-05-31 14:19:31 浏览: 741
### 回答1:
可以使用冒泡排序或选择排序等算法来实现对10个成绩的降序排序。具体步骤如下:
1. 从键盘输入10个成绩,存储到一个数组中。
2. 使用冒泡排序或选择排序等算法对数组进行降序排序。
3. 输出排好序的10个成绩。
示例代码如下:
```python
# 从键盘输入10个成绩
scores = []
for i in range(10):
score = float(input("请输入第%d个成绩:" % (i+1)))
scores.append(score)
# 冒泡排序实现降序排序
for i in range(len(scores)-1):
for j in range(len(scores)-i-1):
if scores[j] < scores[j+1]:
scores[j], scores[j+1] = scores[j+1], scores[j]
# 输出排好序的10个成绩
print("降序排列后的成绩为:")
for score in scores:
print(score)
```
输出结果如下:
```
请输入第1个成绩:89
请输入第2个成绩:78
请输入第3个成绩:95
请输入第4个成绩:67
请输入第5个成绩:80
请输入第6个成绩:92
请输入第7个成绩:85
请输入第8个成绩:73
请输入第9个成绩:88
请输入第10个成绩:91
降序排列后的成绩为:
95.
92.
91.
89.
88.
85.
80.
78.
73.
67.
```
### 回答2:
这道题目的核心点在于排序算法和数组的运用。首先,我们需要用一个数组来存储这10个成绩的数值,然后对数组进行排序,最后输出排好序的结果。
常见的排序算法有冒泡排序、选择排序、插入排序、快速排序等。由于这道题目输入数据较少,我们可以选择简单易懂的冒泡排序。冒泡排序是依次比较相邻的两个数,如果前一个数比后一个数大,则交换它们两个的位置。这样一轮下来,最大的数就会跑到数组的最后一个位置。重复以上的操作,直到整个数组排好序。
以下是具体实现步骤:
1. 定义一个长度为10的数组scores,用来存储输入的10个成绩。
2. 使用for循环输入10个成绩,将每个成绩依次存入数组scores中。
3. 使用双重for循环进行冒泡排序。外层循环控制排序的轮数,内层循环控制每一轮比较的次数。具体代码如下:
for (int i = 0; i < scores.length-1; i++) {
for (int j = 0; j < scores.length-1-i; j++) {
if (scores[j] < scores[j+1]) {
int temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
4. 排序完成后,使用for循环输出排好序的10个成绩,具体代码如下:
for (int i = 0; i < scores.length; i++) {
System.out.println(scores[i]);
}
最终的完整代码如下:
import java.util.Scanner;
public class SortScores {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] scores = new int[10];
System.out.println("请输入10个成绩:");
for (int i = 0; i < scores.length; i++) {
scores[i] = scanner.nextInt();
}
for (int i = 0; i < scores.length-1; i++) {
for (int j = 0; j < scores.length-1-i; j++) {
if (scores[j] < scores[j+1]) {
int temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
System.out.println("排序后的成绩为:");
for (int i = 0; i < scores.length; i++) {
System.out.println(scores[i]);
}
}
}
以上就是本题的解法过程。总体来说,这道题目虽然简单,但是涉及到了排序算法和数组的相关知识点,对于初学者来说是一个不错的练手题。
### 回答3:
这道题是一个基础的排序题目,要求我们对输入的10个成绩进行排序,最后输出排好序的10个成绩。为了方便处理,我们可以把这10个成绩存储在一个数组中,并采用冒泡排序法进行排序。
具体的步骤如下:
1. 定义一个大小为10的数组,并从键盘输入10个成绩。
2. 采用冒泡排序法进行排序,可以从大到小或者从小到大排序。这里我们就从大到小排序。
3. 冒泡排序法的具体实现方式是,将相邻的两个数进行比较,如果前面的数比后面的数大,则交换这两个数的位置。这样进行多次循环,就可以将最大的数移到数组的最前面。
4. 排完序后,再输出排好序的10个成绩即可。
下面是具体的实现代码:
#include <stdio.h>
int main()
{
int scores[10];
int i, j, temp;
printf("请输入10个成绩:\n");
for(i = 0; i < 10; i++)
{
scanf("%d", &scores[i]);
}
for(i = 0; i < 9; i++)
{
for(j = 0; j < 9 - i; j++)
{
if(scores[j] < scores[j+1])
{
temp=scores[j];
scores[j]=scores[j+1];
scores[j+1]=temp;
}
}
}
printf("排序后的成绩为:\n");
for(i = 0; i < 10; i++)
{
printf("%d ", scores[i]);
}
return 0;
}
运行结果:
请输入10个成绩:
89 78 96 60 80 75 85 90 68 72
排序后的成绩为:
96 90 89 85 80 78 75 72 68 60
以上就是对于这个题目的详细解答。
阅读全文