Online Compiler C

#include <stdio.h> enum { SIZE = 10 }; int main() { int A[SIZE]; for (int i = 0; i < SIZE; i++) { scanf("%d", &A[i]); } int is_sort = 0; int temp; while (!is_sort) { is_sort = 1; for (int i = 0; i < SIZE - 1; i++) { if (A[i] % 10 > A[i + 1] % 10) { temp = A[i]; A[i] = A[i + 1]; A[i + 1] = temp; is_sort = 0; } } } return 0; }
这段代码实现了一个冒泡排序,但排序的依据是每个数字的个位数(通过 `% 10` 取得)。程序会读取10个整数,然后按照它们个位数的大小从小到大排序。

- 注意排序条件 `A[i] % 10 > A[i + 1] % 10`,这里只比较了个位数,如果两个数的个位数相同,它们的相对顺序可能会不稳定,但这不是主要问题。
- 主要问题在于:当个位数相同时,代码不会交换元素,但题目可能要求按照数字本身的大小进行排序,或者有其他排序规则。请确认题目要求的是按个位数排序,还是按数字本身排序。如果要求按数字本身排序,那么比较条件需要修改。