输入一个班的学生学号和英语成绩,用冒泡法从大到小进行排序?(伪代码,流程图,或c语言进行描述)
时间: 2023-03-16 09:46:43 浏览: 193
伪代码:
1. 输入学生数量n和学号和成绩数组a[n][2]
2. for i = 0 to n-1 do
for j = 0 to n-i-1 do
if a[j][1] < a[j+1][1] then
swap(a[j], a[j+1])
3. 输出排序后的学号和成绩数组a[n][2]
流程图:
![冒泡排序流程图](https://i.imgur.com/2CJf7Jm.png)
C语言代码:
```c
#include <stdio.h>
int main() {
int n, i, j, temp;
scanf("%d", &n);
int a[n][2];
for (i = 0; i < n; i++) {
scanf("%d %d", &a[i][0], &a[i][1]);
}
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (a[j][1] < a[j+1][1]) {
temp = a[j][1];
a[j][1] = a[j+1][1];
a[j+1][1] = temp;
temp = a[j][0];
a[j][0] = a[j+1][0];
a[j+1][0] = temp;
}
}
}
for (i = 0; i < n; i++) {
printf("%d %d\n", a[i][0], a[i][1]);
}
return 0;
}
```
阅读全文