(Ne)uložení struktury po seřazení – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

(Ne)uložení struktury po seřazení – C / C++ – Fórum – Programujte.com(Ne)uložení struktury po seřazení – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Tuqi
~ Anonymní uživatel
12 příspěvků
11. 3. 2013   #1
-
0
-

Ahoj, pracuji v C++ se strukturami tvaru "jmeno" a " cislo". Potřebuji je seřadit podle abecedy, což mi sice funguje, ale výsledná seřazená struktura není uložená. Co dělám špatně? (Jako výsledek potřebuji 2 seřazené struktury, které budu ukládat do souboru.) Díky za cokoliv :)

DB bubblesort(DB * dtbs, int pocet){
    string pom;
    for(i=0; i < pocet; i++) {
        for(j=0; j < pocet - i - 1; j++) {
             if(dtbs[j].jmeno > dtbs[j+1].jmeno) {
                pom = dtbs[j+1].jmeno;
                dtbs[j+1].jmeno = dtbs[j].jmeno;
                dtbs[j].jmeno = pom;
            }}}
    return dtbs[pocet];
}

...

DB dtbs1b[MAX] = bubblesort(dtbs1, pocet1);
    DB dtbs2b[MAX] = bubblesort(dtbs2, pocet2);
Nahlásit jako SPAM
IP: 2001:718:2:71:4019:9c1d:2...–
Reklama
Reklama
Martin Kozibrátka
~ Anonymní uživatel
138 příspěvků
12. 3. 2013   #2
-
0
-

#1 Tuqi
Zanamená to, že v dtbs1 a dtbs2 je to seřazené, ale v DB dtbs1b[MAX] ne? Z tohodle kousku kodu to není moc čitelné

Nahlásit jako SPAM
IP: 188.120.221.–
Tuqi
~ Anonymní uživatel
12 příspěvků
12. 3. 2013   #3
-
0
-

#2 Martin Kozibrátka
dtbs1 a 2 jsou neseřazené výchozí struktury, které chci seřadit v bubblesortu a nějakým způsobem uložit - třeba do dalších struktur dtbs1b a dtbs2b, se kterými chci dál pracovat

Nahlásit jako SPAM
IP: 147.32.185.–
Mr
~ Anonymní uživatel
1 příspěvek
12. 3. 2013   #4
-
0
-

#3 Tuqi
#2 Martin Kozibrátka

#3 Tuqi
Máš to uložené v tom dtbs1 a dtbs2. A taky se mi zdá divné, že pomocnou máš string a ne DB.

Nahlásit jako SPAM
IP: 89.103.112.–
Martin Kozibrátka0
Stálý člen
12. 3. 2013   #5
-
0
-

   

struct DB
{
	string jmeno;
};

void bubblesort(DB * dtbs, int pocet)
{
    string pom;
    for(int i=0; i < pocet; i++) {
        for(int j=0; j < pocet - i - 1; j++) {
             if(dtbs[j].jmeno > dtbs[j+1].jmeno) {
                pom = dtbs[j+1].jmeno;
                dtbs[j+1].jmeno = dtbs[j].jmeno;
                dtbs[j].jmeno = pom;
            }}}
}

int _tmain(int argc, _TCHAR* argv[])
{
	DB serazena[3];
	DB jmena[3];
	
	jmena[0].jmeno="Martin";
	jmena[1].jmeno="David";
	jmena[2].jmeno="Ales";
	bubblesort(jmena,3);	

	memcpy(&serazena,&jmena,sizeof(jmena));



}
Nahlásit jako SPAM
IP: 188.120.221.–
Savana.cz - neomezený webhosting za pár kaček :)
Tuqi
~ Anonymní uživatel
12 příspěvků
12. 3. 2013   #6
-
0
-

#4 Mr
dtbs1 a dtbs2 po bubblesortu (bez přeuložení do dtbs1b a dtbs2b) fungovalo, resp. uložili se (FORem se vypsali správně, seřazeně), ale když jsem je vypisovala do souboru, házelo to fail...

Diky, memcpy funguje. Navíc jsem si našla další chybu, bubblesortem měním jen položku jméno, a ne celou strukturu... Super, jde to, ještě se zeptám, je možné, že když porovnávám 2 stringy, neporovná to jejich číselný konec? Např. opice2 a opice3... Nebo mám v kódu další koninu...

Nahlásit jako SPAM
IP: 2001:718:2:2905:f9c7:c54a...–
Tuqi
~ Anonymní uživatel
12 příspěvků
12. 3. 2013   #7
-
0
-

Beru zpět, to s porovnáváním stringů... mám tam blbost... Dík za rady :)

Nahlásit jako SPAM
IP: 2001:718:2:2905:f9c7:c54a...–
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, 120 hostů

Podobná vlákna

Seřazení — založil Jakub656

Seřazení čísel — založil Ondra

Moderátoři diskuze

 

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