题目要求:利用数组对 10 个整数排序。从键盘输入10个整数,保存到一个数组。
代码如下:
#include <iostream>
using namespace std;
int main() {
int arr[10];
// 输入十个整数
cout << "请输入十个整数:" ;
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
// 冒泡排序
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出排序后的数组
cout << "排序后的数组为:" ;
for (int i = 0; i < 10; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
解释如下:
- 这里使用了冒泡排序算法对数组进行排序。
- 外层
for
循环for (int i = 0; i < 9; i++)
:
- 控制排序的轮数。对于有
n
个元素的数组,最多需要n - 1
轮排序。这里n = 10
,所以最多需要 9 轮。- 每一轮排序后,最大的元素会 “浮” 到数组的末尾,所以下一轮比较的元素个数会减少一个。
- 内层
for
循环for (int j = 0; j < 9 - i; j++)
:
- 用于比较相邻元素。
- 在每一轮中,比较
arr[j]
和arr[j + 1]
的大小。if (arr[j] > arr[j + 1])
:
- 如果
arr[j]
比arr[j + 1]
大,则交换它们的位置。int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp;
:
- 这是交换元素的操作。使用临时变量
temp
存储arr[j]
的值,将arr[j + 1]
的值赋给arr[j]
,再将temp
的值赋给arr[j + 1]
,从而完成元素交换。
觉得有帮助就给博主点个关注叭~~
有问题的可以私信或者在评论区一起交流
友友们一起加油叭QAQ