#include <iostream>
using namespace std;
int main() {
int n;
while(cin>>n){
int arr[n];
for(int i=0;i<n;i++)cin>>arr[i];
for(int k=n;k>=1;k--){
for(int i=0;i<k;i++){
if(arr[i]%10>arr[i+1]%10)swap(arr[i],arr[i+1]);
else if(arr[i]%10==arr[i+1]%10){
if(arr[i]<arr[i+1])swap(arr[i],arr[i+1]);
}
}
}
for(int i=0;i<n;i++)cout<<arr[i]<<" ";
cout<<endl;
}
return 0;
}
您的答案為: 51 13 21915 106 46 26 98
正確答案為: 51 13 106 46 26 98 38
for(int k=n;k>=1;k--){
for(int i=0;i<k;i++){
k = n~1, i = 0~(k-1) 可得 (i+1) = 1~k = 1~n,也就是可能取到 arr[n] 的值,不在你輸入的範圍內