#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[20], n, t;
cin >> n;
//读入数组元素
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
//排序
//循环i代表排序的轮数(i在此处代表排序的轮数)
//n个数排序 n - 1 轮
for (int i = 1; i <= n - 1; i++)
{
//第i轮排序,需要下标为0 ~ n - i的数参加排序
//循环范围,0 ~ n - i - 1, 如果前一个数 > 后一个数,交换它们
//此处的j代表的是数组元素的下标
for (int j = 0; j <= n - i - 1; j++)
{
if (a[j] > a[j + 1]) //从小到大(从大到小也可以,> 改成 < 就可以了)
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
//输出排序的结果
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
return 0;
}
此为重点数组内容, 稍加改动便可作信息学奥赛一本通,洛谷,及各种OJ题解