(sjednoceni mnozin) pole ze scanfu bez duplicit,dynamicky – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

(sjednoceni mnozin) pole ze scanfu bez duplicit,dynamicky – C / C++ – Fórum – Programujte.com(sjednoceni mnozin) pole ze scanfu bez duplicit,dynamicky – C / C++ – Fórum – Programujte.com

 

Durza
~ Anonymní uživatel
24 příspěvků
1. 12. 2012   #1
-
0
-

Zdravím
mam v souboru nějaké čísla a já je chci uložit do pole tak aby aby sem každe čislo jen jednou a pokud možno aby moje finalní pole bylo dynamické podle počtu neduplicitních prvků

chci udělat takové sjednocení množin ale jen s jednou množinou
proč mi nefrčí tohle? : 

    int tmp;
    rewind(fr);
    for(i=0; i< pocetPrvkuMatice ;i++){
        fscanf(fr, "%d", &tmp);
        for(k =0; k<pocetPrvkuMatice;k++){
            if(tmp != universum[k]){
                universum[i]=tmp;
            }
        }
    }
Nahlásit jako SPAM
IP: 85.92.58.–
cibule0
Návštěvník
1. 12. 2012   #2
-
0
-

#1 Durza
No tak muzes pouzit knihovnu set z STL

Nahlásit jako SPAM
IP: 193.86.244.–
cibule0
Návštěvník
1. 12. 2012   #3
-
0
-

#1 Durza
K tomu tvemu kodu by to melo spis takhle:

    int tmp; 
    int k = 0;
    rewind(fr);
    for(i=0; i< pocetPrvkuMatice ;i++){
        fscanf(fr, "%d", &tmp);
        for(k = 0; k<pocetPrvkuMatice;k++){
            if(tmp != universum[k]) continue;
		else break;
       if(k == pocetPrvkuMatice) universum[i]=tmp;
        }
    }


Nahlásit jako SPAM
IP: 193.86.244.–
Durza
~ Anonymní uživatel
24 příspěvků
1. 12. 2012   #4
-
0
-

#2 cibule

myslel sem že STL je jen pro C++
pokud ne rád ji použiju

Nahlásit jako SPAM
IP: 85.92.58.–
Durza
~ Anonymní uživatel
24 příspěvků
1. 12. 2012   #5
-
0
-

#3 cibule
tenhle kod nefunguje

nezapiše to jediný prvek

Nahlásit jako SPAM
IP: 85.92.58.–
Durza
~ Anonymní uživatel
24 příspěvků
1. 12. 2012   #6
-
0
-

pořád si s tím nevím rady
mam matici (nebo můžu použít data z přímo z texťáku - vyhnu se tak 2 vnořeným forům) a chci ji přepsat do pole tak aby tam nebyly duplicitní čísla) pokud možno tak aby to výsledné pole bylo velké jako počet neduplicitních míst
 

Nahlásit jako SPAM
IP: 85.92.58.–
cibule0
Návštěvník
2. 12. 2012   #7
-
0
-

#6 Durza
JJ je STL jen pro C++ :-) Ono by to asi chtelo cely kod, kdyz tahle cast funkce nefunguje ani nevim co je v tom poli universum

Nahlásit jako SPAM
IP: 193.86.244.–
zlz
~ Anonymní uživatel
634 příspěvků
2. 12. 2012   #8
-
0
-

Jestli to dobře chápu, tak při načtení prvku chceš zkontrolovat, jestli už taková hodnota byla načtena a pokud nebyla, tak ji přidat do universum.

Pak by to mohlo vypadat nějak takhle.

for(pocetNactenychPrvku = 0; pocetNactenychPrvku < pocetPrvkuKNacteni; ){
    if (fscanf(fr, "%d", &tmp) != 1) {
        fprintf(stderr, "Chyba pri cteni\n");
        break;
    }

    duplicita = 0;
    for(k = 0; k < pocetNactenychPrvku; k++){
        if (tmp == universum[k]) {
            duplicita = 1;
            break;
        }
    }

    if (!duplicita) {
        universum[pocetNactenychPrvku] = tmp;
        pocetNactenychPrvku++;
    }
}
Nahlásit jako SPAM
IP: 80.188.216.–
Durza
~ Anonymní uživatel
24 příspěvků
2. 12. 2012   #9
-
0
-

#8 zlz

tenhle kod už odstranuje duplicity ale zapisuje každý prvek až o políčko dal
výsledné pole vypadá 1, 0, 2, 0, 3, 0, 4 ... kde nula je prazdný prvek pole, zapisuje to objedno

Nahlásit jako SPAM
IP: 85.92.58.–
Durza
~ Anonymní uživatel
24 příspěvků
2. 12. 2012   #10
-
0
-

#9 Durza 

aha tak moje chyba, zapisuje to správně, to ja doplnil do toho vrchního cyklu skok
nevědel sem že může být vynechaný

Nahlásit jako SPAM
IP: 85.92.58.–
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, 24 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ý