Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Sortowanie podanej przez uzytkownika liczby i tworzenie nowej

$
0
0
czesc, mam pytanie co do programu, teoretycznie działa, ale..

Ma byc tak: jesli wpiszemy liczbe  to zwroci nowa liczbe sortujac jej posczegole liczby.

np. 878201 to bedzie 12788

Napisalem to tak, ale czy mozna inaczej sie dostac do poszczegolnych cyferek bez konwertowania na stringi? np. jesli wymog bedzie ze tylko podajemy int i zwraca int. Ponadto gdy wpisze np. 55555555555555 to program zwraca dziwne liczby :D

kod:

#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;

void zamiana(string tab,int roz){

    for(int j=0; j<roz;++j){
            for(int i=0; i<roz-1;++i){

                if(tab[i]>tab[i+1]){
                    swap(tab[i],tab[i+1]);
                }
            }
    }
    for(int i=0; i<roz; i++){
        if(tab[i]=='0')cout<<"";
        else
            cout<<tab[i];
    }
}

int main()
{
    int liczba;
    char buffor[32];

    cout << "podaj liczbe ";
    cin>>liczba;

    itoa(liczba,buffor,10);
    string liczba1=(string)buffor;

    int roz=liczba1.length();

    zamiana(liczba1, roz);

    return 0;
}

Viewing all articles
Browse latest Browse all 21942