使用Bubble Sort实现及格学生成绩降序排序并统计不及格人数求助
修改说明
- 原有冒泡排序为升序逻辑,调整比较条件改为降序排序
- 新增不及格人数统计逻辑:遍历数组统计成绩<60的元素数量
- 修改打印函数逻辑:仅输出≥60的成绩
完整可运行代码
#include <bits/stdc++.h> using namespace std; // 降序递归冒泡排序 void bubbleSort(int arr[], int n) { if (n <= 1) return; for (int i = 0; i < n - 1; i++) // 升序为大于时交换,降序改为小于时交换 if (arr[i] < arr[i + 1]) swap(arr[i], arr[i + 1]); bubbleSort(arr, n - 1); } // 仅打印及格成绩 void printPassScore(int arr[], int n) { for (int i = 0; i < n; i++) { if (arr[i] >= 60) { printf("%d ", arr[i]); } } printf("\n"); } // 统计不及格人数 int countFail(int arr[], int n) { int cnt = 0; for (int i = 0; i < n; i++) { if (arr[i] < 60) cnt++; } return cnt; } int main() { int arr[] = { 64, 34, 25, 12, 22, 11, 90 }; int n = sizeof(arr) / sizeof(arr[0]); bubbleSort(arr, n); printf("排序后的及格成绩:\n"); printPassScore(arr, n); int failCnt = countFail(arr, n); printf("不及格人数:%d\n", failCnt); return 0; }
运行输出
排序后的及格成绩: 90 64 不及格人数:5
内容的提问来源于stack exchange,提问作者Chakib Ar
相关产品推荐
相关产品推荐

