Sắp xếp các chữ số của số nguyên dương n theo thứ tự tăng dần

Viết hàm sắp xếp các chữ số của số nguyên dương n (n≤10^100) theo thứ tự tăng dần

Đầu vào từ bàn phím gồmT+1 dòng

Dòng đầu tiên chứa số nguyên T là số lượng số cần kiểm tra;
T dòng tiếp theo, mỗi dòng chứa một số nguyên n.

Đầu ra
In ra màn hình T dòng, mỗi dòng ghi ra số nguyên nn sau khi đã sắp xếp

mọi người giúp e sửa câu nay với ạ.

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    int a[n];
    for(int i = 0; i < n; i++){
        cin >> a[i];
    }
    int tg;
    for(int i = 0; i < n-1; i++){
        for(int j = i+1 ; j < n; j++){
            if(a[i] > a[j]){
                tg = a[i];
                a[i] = a[j];
                a[j] = tg;        
            }
        }
    }
      for(int i = 0; i < n; i++){
        cout<< a[i] << " " << endl;
    }
}

  1. Đề nói là sắp xếp các chữ số của n, không phải là sắp xếp T số.

  2. Các số nguyên dương này có limit 10^100, tức là không thể lưu dưới dạng int hay kể cả unsigned long long. Bạn đọc và lưu n dưới dạng string là được.

2 Likes
#include <bits/stdc++.h>
#include <string.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    string a[n];
    for(int i = 0; i < n; i++){
        cin >> a[i];
    }
    string tg;
    for(int i = 0; i < n-1; i++){
        for(int j = i+1 ; j < n; j++){
            if(a[i] > a[j]){
                tg = a[i];
                a[i] = a[j];
                a[j] = tg;        
            }
    }
}
      for(int i = 0; i < n; i++){
        cout<< a[i] << " " << endl;
    }    
}

e sửa như này cần sửa thêm j ko ạ

Bạn vẫn chưa hiểu đề bài nhỉ. Chiếu theo đề, văn mẫu của code sẽ như thế này:

cin >> t; // số test
for (int c = 0; c < t; c++) {
    // mỗi test đọc và xử lý 1 số n
    string n;
    cin >> n;
    /*
    code sắp xếp các chữ số của n
    */
    cout << ...; // in ra đáp số
}
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?