Code sắp xếp chữ số của số nguyên n bị sai

đề bài là sắp xếp theo thứ tự từ bé đến lớn của số nguyên a;
e làm nhưng không biết sai ở đâu ,anh chị chỉ giúp e với

#include <iostream>
#include <vector>
using namespace std;

void set_sort(int& coun, vector<int>& a){
    for (int i=0;i< coun-1;i++){
        for (int j=i+1;j<coun;j++){
            int b;
            if(a[j]<a[i]){
                b=a[i];
                a[i]=a[j];
                a[j]=b;
            }
        }
    }
}
int set_coun(int& a){
    int coun=1;
    do{
        a=a/10;
        coun++;
    }
    while (a>=10);
    return coun;
}

void print_sort(int a){
    int coun=set_coun(a);
    vector <int> last(coun,0);
    for(int i=0;i<coun;i++){
        last[i]=a%10;
        a/=10;
    }
    set_sort(coun,last);
    for (int i=0;i< coun ;i++)
         cout << last[i];
}
int main(){
    int n;
    cin >> n;
    int a[n];
    for (int i=0 ; i< n; i++){
        cin >> a[i];
        print_sort(n);
        cout << endl;
    }
    return 0;
}

Đọc mã của bạn làm mình hơi bấn loạn giữa đề bài và bài làm.
Cuối cùng thì đề bài yêu cầu sắp xếp mảng hay sắp xếp các chữ số của 1 số nguyên?

2 Likes

sắp xếp chữ số nguyên của số n,bài bắt làm về hàm
mình mới học về hàm nên chưa rõ lắm

Vì bạn đã cin >> n còn cin >> a[i] đó.
Thứ hai, trước dùng mảng thường sau lại dùng vector?

3 Likes


mình sửa lại r mà nó vẫn ra thế này ạ

n là n phần tử trong mảng a , nên mình nghĩ phải cin cả a nữa chứ ạ

Đến chịu!

Bạn ghi số nguyên n chứ có ghi n test cases đâu!

5 Likes

Bàn này mô tả yêu cầu của đề không rõ ràng, đầy đủ. Bạn chụp cái đề gốc lên mọi người xem nào.

2 Likes

Screenshot (84)
đề đầy đủ đây ạ

n \le 10^{100} thế là hiểu rồi nhé, dùng chuỗi! Một mảng kí tự với số lượng phần tử tối đa là 101 để xử lý tất cả các testcase. Mà dùng vector cũng được.
Bài bạn làm “gãy” lung tung, nhập một đằng, tính một nẻo, xuất ra một nơi.

4 Likes

hàm set_coun sửa lại thành:

int set_coun(int a)
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?