在线编译器 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个整数,然后按照个位数字从小到大排序,最后输出排序后的数组。

代码中存在一个语法错误:第14行的 `temp = a[j];` 后面缺少分号。另外,输出时没有空格或换行,所有数字会连在一起显示。

- 检查第14行,赋值语句末尾需要加上分号。
- 考虑在 `printf` 中添加空格或换行,使输出更易读。