Online Compiler C

#include <stdio.h> int main() { int a[10]; int temp; for (int i = 0; i < 10; i++) { scanf("%d", &a[i]); } for (int i = 0; i < 9; i++) { for (int j = 0; j < 9 - i; j++) { int last1 = a[j] % 10; int last2 = a[j + 1] % 10; if (last1 > last2) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } for (int i = 0; i < 10; i++) { printf("%d", a[i]); } return 0; }
这段代码实现了一个冒泡排序,但排序的依据是每个整数的个位数字(即除以10的余数),而不是整数本身的大小。代码先读入10个整数,然后按照个位数字从小到大排序,最后输出排序后的数组。

- 注意输出格式:代码中 `printf("%d", a[i])` 没有添加空格或换行,所有数字会连在一起输出,比如输入1 2 3会输出123。你可能需要根据题目要求调整输出格式,比如在数字之间加空格或换行。

- 排序逻辑只比较个位数字,如果两个数的个位相同,它们的相对顺序会保持不变(这是冒泡排序的稳定特性)。但请确认题目是否要求当个位相同时按原顺序排列,或者需要进一步按其他规则排序。