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

Kaip surušiuoti sąrašą, kad sekanti raidė būtų skirtingą


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1494 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 kas gali padėti, ieškojau informacijos internete neradau. Turiu 11 raidžių: 

B D A A R A R B K A A

Man reikė jas surušiuoti taip, kad jos nesikartotų, o eitu skirtingai pvz:

B D A R A R A B A K A

Bandžiau daryti taip:

bool rikiuote = true;
while (rikiuote)
{
	rikiuote = false;
	for (int i = 1; i <= n-1; i++)
	{
		if (simbolis[i] == simbolis[i + 1])
		{
			swap(simbolis[i], simbolis[i + 2]);
			rikiuote = true;
		}
	}
}
       

Bet programa užlūžta. Gal kas gali padėt?

Nuoroda į komentarą
Dalintis per kitą puslapį

Gal ir nelabai efektyviai, bet

for (int i = 2; i < n; i++)
{
  	if(Simbolis[i] == Simbolis[i-1] || Simbolis[i] == Simbolis[i+1])
  	{
    	for(int j=2;j<n;j++)
        {
        	if(Simbolis[i]==Simbolis[j-1] || Simbolis[i]==Simbolis[j+1] || Simbolis[i] == Simbolis[j])continue; // Patikrinam ar i simbolis tinka įdėti į j vietą
          	if(Simbolis[j] == Simbolis[i-1] || Simbolis[j]==Simbolis[i+1])continue;// Patikrinam ar simbolis j tinka įdėti į i vietą
            swap(Simbolis[i],Simbolis[j]);
            break;
        }
  	}
}

Netestavau, tūrėtų veikt. lygiavimą sugadina kažkodėl

Nuoroda į komentarą
Dalintis per kitą puslapį

Kas naudoja beribį ciklą su while, rašykite taip:

while (true) {

Sąlyga, jeigu neatitinka – continue; (ir neprileidi prie pabaigos kol negauni ko nori).

break; – čia šalia paskutinis kodo įvykdymas (būtina, šios dalies neturėjo pasiekti, jeigu validacijos nepraeina, mėtai continue)

}

Nedarykite su kintamaisiais, kadangi beribiai ciklai turi būti valdomi/uždaromi su continue, break. Be jų prastai skaitosi kodas.

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1494 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ą...