题目描述:
从键盘上输入10个整数,用冒泡法对这10个数进行排序(由小到大)。
输入:
以空格分隔的10个整数
输出:
依次输出排好序的10个整数,每个数占一行。
样例输入:
1 3 5 7 9 2 4 6 8 0
样例输出:
0
1
2
3
4
5
6
7
8
9
实现代码:
#include<cstdio>
int main() {
int a[10];
while(scanf("%d", &a[0]) != EOF) {
for(int i = 1; i < 10; i++) {
scanf("%d", &a[i]);
}
int temp;
int i, j;
for (i = 0; i < 9; i++) { /* 外循环为排序趟数,len个数进行len-1趟 */
int flag = 0;
for (j = 0; j < 9 - i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */
if (a[j] > a[j + 1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
flag = 1;
}
}
if(!flag) {
break;
}
}
for(int i = 0; i < 10; i++) {
printf("%d\n", a[i]);
}
}
return 0;
}