Prohození dvou čísel – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prohození dvou čísel – Java – Fórum – Programujte.comProhození dvou čísel – Java – Fórum – Programujte.com

 

Michal
~ Anonymní uživatel
683 příspěvků
9. 11. 2012   #1
-
0
-

Ahoj, už si z toho pomalu začínám rvát vlasy. Nechápu to, ale pořád mi tu nefunguje prohození dvou čísel. Mám pole čísel 1,2,3,...,9 a chci prostě dve čisla z toho pole vzít a prohodit je. Jenomže místo toho se mi ty čísla zduplikují a na poloze d dostanu stejné číslo jako na poloze 3. Přitom to je jen obyčejné prohození a vždycky mi to fungovalo. Nechápu proč najednou tady nefunguje. Díky.

    public static int[] prohozeni(){
    
    int[] pole = {1, 2, 3, 4, 5, 6, 7, 8, 9}; 

    Random R = new Random();
    
    int d = R.nextInt(pole.length);
    
    
     int c = pole[d];
     pole[d]=pole[3];
     pole[3]=c;
    
    
    
    return pole;
    }

Díky za případné rady.

Nahlásit jako SPAM
IP: 81.201.55.–
reciproke0
Návštěvník
9. 11. 2012   #2
-
0
-

...mně osobně to takhle funguje

Nahlásit jako SPAM
IP: 82.208.4.–
Michal
~ Anonymní uživatel
683 příspěvků
9. 11. 2012   #3
-
0
-

Já když si ty čísla nechám vypsat pomocí jednoduchého for cyklu: 

     for (int i = 0; i < 9; i++) 
      System.out.print(prohozeni()[i]+"  ");
        }

Tak mi to vypisuje řady typu:

1  2  3  2  5  6  7  8  9
1  2  3  8  4  6  7  8  9
1  2  3  1  5  6  7  4  9    // Tahle je obzvlášť divná
1  2  3  3  5  6  7  8  9
atd...

Nahlásit jako SPAM
IP: 81.201.55.–
reciproke0
Návštěvník
9. 11. 2012   #4
-
0
-

při každém výpisu voláš prohozeni() a to ti pokaždé vrátí jiné nové pole. 

Nahlásit jako SPAM
IP: 82.208.4.–
Michal
~ Anonymní uživatel
683 příspěvků
9. 11. 2012   #5
-
0
-

ahá, chápu v čem je chyba. Díky... Ale nevím jak bych to pole měl zavolat tak, aby mi naráz vypsalo všechna čísla. 

System.out.print(generator()[1]);
Nahlásit jako SPAM
IP: 81.201.55.–
Michal
~ Anonymní uživatel
683 příspěvků
9. 11. 2012   #6
-
0
-

#5 Michal
(Odeslal sem to omylem předčasně)

Kdybych to udělal takhle, tak bych musel pro každý člen pole napsat speciální řádku kódu... Ale já bych to potřeboval obecně a to mě bohužel nic nenapadá...

Nahlásit jako SPAM
IP: 81.201.55.–
reciproke0
Návštěvník
9. 11. 2012   #7
-
0
-

však si ho můžeš uložit a následně projít. 



int[] pole = prohozeni();
        
for (int i = 0; i < pole.length; i++) {
      System.out.print(pole[i] + " ");                    
} 
Nahlásit jako SPAM
IP: 82.208.4.–
Michal
~ Anonymní uživatel
683 příspěvků
9. 11. 2012   #8
-
0
-

Paráda. :) Moc děkuju, sám bych na to nepřišel a brzo bych se asi rozbrečel. :D

Nahlásit jako SPAM
IP: 81.201.55.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý