Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Ajutor subprogram  (Citit de 4309 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
alexthebest08
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 14



Vezi Profilul
« : Octombrie 18, 2016, 17:15:58 »

Salutare !
Am o problema de rezolvata care aparent pare a fi foarte simpla.
"Să se scrie o funcție C++ care să returneze cel mai mare număr care se poate scrie cu cifrele unui număr natural transmis ca parametru."
Eu m-am gandit sa inserez cifrele nr. intr-un vector iar apoi sa il sortez descrescator. Pare foarte simplu, dar nu inteleg de ce nu imi afiseaza un rezultat corect. Dupa compilare imi apare mereu rezultatul "0" daca n>9.

Cod:
int cmmnr(int n)
{
    int v[100],i,t,k=0;
    if(n<=9)
        return n;
    while(n){
        t = n%10;
        n/=10;
        k++;
    }
    while(n){
        for(i=0;i<k;i++)
            v[i] = n%10; // copiez cifrele lui n in vector
      n/=10;
    }
   //sortez elem vectorului descrescator
    int aux,ok;
    do{
        ok = 1;
        for(i=0;i<n-1;i++)
        if(v[i]<v[i+1]){
            ok = 0;
            aux = v[i];
            v[i] = v[i+1];
            v[i+1] = aux;
        }
    }while(ok!=1);

    for(i=0;i<k;i++)
        return v[i]; // afisez
}

Unde am gresit ?
Va multumesc anticipat !
Memorat
GavrilaVlad
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 222



Vezi Profilul
« Răspunde #1 : Octombrie 18, 2016, 18:26:58 »

Hint ca sa gasesti singur greseala: dupa ce se executa primul while, ce valoare are variabila n?
Memorat
alexthebest08
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 14



Vezi Profilul
« Răspunde #2 : Octombrie 18, 2016, 21:38:33 »

Multumesc Gavrila Vlad, n va fi 0.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines