Výpis čísel na jednom řádku – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výpis čísel na jednom řádku – C / C++ – Fórum – Programujte.comVýpis čísel na jednom řádku – C / C++ – Fórum – Programujte.com

 

K4M
~ Anonymní uživatel
3 příspěvky
3. 10. 2017   #1
-
0
-

Zdravím,
mám funkci na řazení deseti čísel, ve které chci použít cyklus, který postupně vypíše kroky řazení. Ale bohužel se mi vždy vypíše na každý řádek jen jedno číslo, zkoušel jsem snad vše, co mě napadlo, ale nepodařilo se mi docílit toho, aby se mi po vypsání všech deseti čísel odřádkovalo a na nový řádek napsalo je znovu.

void bubble(int *pole, int x){
    for(int a = 0; a < x - 1; a++)
    {
        for(int b = 0; b < n - a - 1; a++){
            if(pole[j+1] < pole[j])
            {
                int tmp = pole[b + 1];
                pole[b + 1] = pole[b];
                pole[b] = tmp;
                for(int a=0;i<x;i++)
                    {cout<<pole[a]<<"\n";}
            }
          }
       }

    }
Nahlásit jako SPAM
IP: 178.248.59.–
KIIV
~ Moderátor
+43
God of flame
3. 10. 2017   #2
-
0
-

#1 K4M
mozna by stacilo zmenit "\n" na mezeru, pak to nebude odradkovavat. Ten cout << "\n" hodit az za cyklus, ktery to vypsal.
 

Nahlásit jako SPAM
IP: 93.91.151.–
Program vždy dělá to co naprogramujete, ne to co chcete...
K4M
~ Anonymní uživatel
3 příspěvky
3. 10. 2017   #3
-
0
-

Děkuju moc! Přesunutí cout<<"\n"; za cyklus pomohlo.

Nahlásit jako SPAM
IP: 178.248.59.–
K4M
~ Anonymní uživatel
3 příspěvky
3. 10. 2017   #4
-
0
-

Narazil jsem ještě na jeden problém, se kterým si nevim rady.
Chtěl bych vypsat slovně postup řazení. Zkoušel jsem to udělat přes if, while i for, zkoušel je vkládat do funkce i hlavního programu, ale vždy mi to vypíše text jen na některých místech nebo se text zobrazuje donekonečna a nebo se nevypíše vůbec nic. Myslím si, že mám chybu v podmínce, protože jsem to zkoušel vložit snad kamkoliv a ani jednou mi to nefungovalo, ale nemužu na chybu přijít.
 

void bubble(int *pole, int x){
    for(int a = 0; a < x - 1; a++)
    {
        for(int b = 0; b < n - a - 1; a++){
            if(pole[j+1] < pole[j])
            {
                int tmp = pole[b + 1];
                pole[b + 1] = pole[b];
                pole[b] = tmp;
                for(int a=0;a<x;a++)
                    {cout<<pole[a]<<"\n";}
if (pole[a+1]<pole[a]) //Podmínka pro vypsání 
{cout << pole[a+1] << " je mensi nez " << pole[a] << " Presouvam " << pole[a+1] << " doleva ";}
            }
          }
       }

    }
Nahlásit jako SPAM
IP: 178.248.59.–
KIIV
~ Moderátor
+43
God of flame
3. 10. 2017   #5
-
0
-

#4 K4M
je dosti pravdepodobne, ze inkrementace promenne a++ ma byt jen v prvnim cyklu, ale ne ve druhem. Tam bych cekal treba b++ (respektive ++b, jelikoz nepotrebujes puvodni hodnotu)

Pak moc nechapu, proc pouzivas pro indexovani a porovnavani pole[j + 1] < pole[j], kdyz jsou tvoje promenne "a" a "b".

Podminka pro ten vypis je zbytecna, jelikoz je to cele v bloku programu, kam se nedostanes, pokud se nic neprohazuje. Krom toho prohazujes prvky na pozicich [b] a [b+1], jednou srovnavas pozice na [j] a [j+1], a v tehle zbytecne podmince pro zmenu pozice [a] a [a+1].

To co momentalne aplikujes je spis neco jako geneticke kodovani - nahodile zkousis pridavat ci odebirat znaky a doufas, ze se to nekdy samo naprogramuje :D

Nahlásit jako SPAM
IP: 93.91.151.–
Program vždy dělá to co naprogramujete, ne to co chcete...
MilanL+1
Grafoman
4. 10. 2017   #6
-
0
-

#4 K4M

Ahoj,

No já bych viděl jako větší problém v tom třetím For cyklu - je tam stejná proměnná jako v prvním.

Nahlásit jako SPAM
IP: 91.139.9.–
KIIV
~ Moderátor
+43
God of flame
4. 10. 2017   #7
-
0
-

#6 MilanL
pravda, bylo toho tolik, ze uz mi tohle uniklo :D Kazdopadne vetsina z tech bodu zpusobi, ze to nemuze fungovat.

Nahlásit jako SPAM
IP: 93.91.151.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 54 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ý