Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Rikiavimas pagal 2 raktus


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1878 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, gal galetumet padeti? Surikuoju skaicius mazejimo tvarka, bet jeigu vienodi skaiciai reikia zodi surikiuoti pagal abecele. Nepavyksta pagal abecele surikiuot, galetumet papildyt kasnors

Citata

void rikiuoti(string PV[], int AT[], int& n)
{
    int mini; // maziausios reiksmes vieta
    string PA; // kintamasis sukeisti vardo reiksmems
    int a; // kintamasis reiksmems sukeisti vietomis
    for(int i = 0; i < n - 1; i++){
        mini = i;
        for(int j = i + 1; j < n; j++){
            if(AT[j] > AT[mini])
            {
              mini     = j;
              a        = AT;
              AT    = AT[mini];
              AT[mini] = a;
//apkeicia ir pavadinimus vietomis
              PA       = PV;
              PV    = PV[mini];
              PV[mini] = PA;
            }
//pagal abecele
          }
        }
    }

 

Nuoroda į komentarą
Dalintis per kitą puslapį

Duok pavyzdinius funkcijos argumentus, nes dabar tavo norų visiškai nesupratau. Pirmasis funkcijos parametras yra string'ų masyvas, bet tu sakai "reikia zodi surikiuoti pagal abecele", tai kaip reiktų tai suvokti? Jeigu duodi žodžių masyvą, tai kiekvieną kartą, kai sutampa skaičiai, tą patį masyvą rikiuoti? Kodėl? Jeigu pirmą kartą surikiuoji, kam rikiuoti antrą? Ir kurio masyvo dydis yra n? Kažkodėl atrodo, kad ne taip supratai užduotį, tai geresnis variantas būtų numest sąlygą, nei dalintis kodo gabaliukais.

Jeigu klystu, pataisyk, bet įsivaizduoju, kad įvestis panaši į tokią:

int main() {
    int arr[]           = { 3, 4, 1, 7, 8, 10, 23, 73, 11, 24, 2, 6 };
    std::string words[] = { "word1", "word2", "word3", "word4" };

    int n = 12;

    rikiuoti( words, arr, n );

    return 0;
}

 

Redaguota , nario [m]
Nuoroda į komentarą
Dalintis per kitą puslapį

prieš 23 valandas(-ų), [m] parašė:

Duok pavyzdinius funkcijos argumentus, nes dabar tavo norų visiškai nesupratau. Pirmasis funkcijos parametras yra string'ų masyvas, bet tu sakai "reikia zodi surikiuoti pagal abecele", tai kaip reiktų tai suvokti? Jeigu duodi žodžių masyvą, tai kiekvieną kartą, kai sutampa skaičiai, tą patį masyvą rikiuoti? Kodėl? Jeigu pirmą kartą surikiuoji, kam rikiuoti antrą? Ir kurio masyvo dydis yra n? Kažkodėl atrodo, kad ne taip supratai užduotį, tai geresnis variantas būtų numest sąlygą, nei dalintis kodo gabaliukais.

Jeigu klystu, pataisyk, bet įsivaizduoju, kad įvestis panaši į tokią:


int main() {
    int arr[]           = { 3, 4, 1, 7, 8, 10, 23, 73, 11, 24, 2, 6 };
    std::string words[] = { "word1", "word2", "word3", "word4" };

    int n = 12;

    rikiuoti( words, arr, n );

    return 0;
}

 

Atsiprašau, turbūt tikrai nelabai tiksliai parašiau kas neaišku. Tačiau išsiaiškinau ir padariau viską. Bet ačiū už pagalbą, čia buvo 2016 metų egzamino pakartotinės sesijos 2 programavimo užduotis. Prisegu rikiavimą pagal reikalavimus - gal kam pravers :

Citata

void rikiuoti(string PV[], int AT[], int& n)
{
    string PA; // kintamasis sukeisti vardo reiksmems
    int a; // kintamasis reiksmems sukeisti vietomis
    for(int i = 0; i < n - 1; i++){
        for(int j = i + 1; j < n; j++){
            if(AT < AT[j])
            {
              a        = AT;
              AT    = AT[j];
              AT[j]    = a;
//apkeicia ir pavadinimus vietomis
              PA       = PV;
              PV    = PV[j];
              PV[j]    = PA;
            }
            else if(AT[j] == AT[j] && PV > PV[j])
            {
                PA    = PV;
                PV = PV[j];
                PV[j] = PA;
            //skaicius surikiuoja taip pat
                a     = AT;
                AT = AT[j];
                AT[j] = a;
            }
          }
        }
    }
 


 

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1878 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...