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


Karma: 0
Deconectat Deconectat

Mesaje: 14



Vezi Profilul
« : Martie 21, 2016, 00:16:32 »

Salutare!
Am urmatoarea problema:
Fie un tablou unidimensional cu n elemente valori naturale. Sa se ordoneze descrescator aceste valori, dupa numarul de cifre distincte pe care le contin.
Exemplu: Pentru n=7 si A=(334, 124, 21, 34, 222, 1, 38=9) se va afisa:
124 334 21 34 39 222 1

Eu am scris codul asta:
Cod:
#include <iostream>

using namespace std;

int main()
{
    int n,v[20],nr=0,t,i,aux,ok;
    cout << "n="; cin >> n;

    for(i=0;i<n;i++)
        cin >> v[i];

    for(i=0;i<n;i++)
        while(i!=0)
        {
           t = i%10;
           i = i/10;
           nr = nr+1;
        }

    do{
        ok = 1;

        for(i=0;i<n;i++)
        {
            while(i!=0)
            {
               t = i%10;
               i = i/10;
               nr = nr+1;
            }
                 if(nr[v[i]]>nr[v[i+1]])
                 {
                    aux = v[i];
                    v[i] = v[i+1];
                    v[i+1] = aux;
                    ok = 0;
                 }
        }
    }while(ok!=1);

    for(i=n;i>=0;i--)
        cout << v[i] << " ";

return 0;

}



Primesc o eroare de sintaxa la linia 32. Am incercat in mai multe moduri dar pur si simplu nu reusesc sa rezolv problema.
Eu m-am gandit ca dupa ce citesc vectorul, va trebui sa numar ciferele fiecarei componente si sa afisez componenta(v[ i ]) daca nr cifrelor sale este mai mare decat ale urmatoarei componente(v[i+1]).
Dar nu stiu cum sa ma exprim in scris. Nu stiu cum ii spun calculatorului sa faca asta.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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