Viết chương trình sắp xếp các số này theo thứ tự tổng các chữ số tăng dần. Tức là, tổng các chữ số của số đứng trước nhỏ hơn hoặc bằng tổng các chữ số của số đứng sau. Nếu hai số có tổng các chữ số bằng nhau, thì số nhỏ hơn sẽ đứng trước
Bài làm của em bị failed hidden test, em ko biết đã sai ở đâu hay thiếu trường hợp nào, nhờ mọi người giúp em với :<
#include<bits/stdc++.h>
using namespace std;
int sumChar(int n) {
int k=0;
int num=n;
while(num!=0){
k+=(num%10);
num=num/10;
}
return k;
}
int main(){
int n;
cin>>n;
int a[n];
for (int i=0; i<n; i++) {
cin >> a[i];
}
for(int i=0; i<n-1; i++) {
int min=sumChar(a[i]);
int index=i;
for(int j=i+1; j<n; j++){
if(sumChar(a[j])<=min){
min=sumChar(a[j]);
index=j;
}
}
swap(a[index],a[i]);
}
for(int i=0; i<n-1; i++){
for(int j=1+1; j<n; j++) {
if(sumChar(a[j])==sumChar(a[i]) && a[j]<a[i]){
swap(a[i],a[j]);
}
}
}
for(int i=0; i<n; i++) {
cout << a[i] << endl;
}
}