Kezdőoldal » Számítástechnika » Programozás » Hogy valósíthatom ezt meg c-ben?

Hogy valósíthatom ezt meg c-ben?

Figyelt kérdés

Van egy txt fájlom számokkal egymás alatt. Egy szám többször is szerepel. Ki kellene íratnom egy másik fájlba a fájlban lévő számokat de úgy, hogy csak egyszer szerepeljenek. Hogy tudom ezt megcsinálni?


Elviekben értem: kiválasztok egy elemet és végignézem, hogy van-e egyenlő, csak tovább nemtudom megvalósítani. Talán kéne egy másik változó amibe a kiválasztott elemet rakom és ciklussal léptetek a fájlban és megfigyelem van-e vele egyenlő és ha van akkor nem íratom ki többször.


2012. okt. 15. 20:10
 1/6 A kérdező kommentje:
Szóval a lényeg, hogy az ismétléseket, hogy szüntetem meg?
2012. okt. 15. 20:10
 2/6 iostream ***** válasza:
Hát, ha rendezed, akkor egymás mellé kerülnek az azonos számok, és akkor tudsz úgy léptetni, hogy csak akkor írod ki, ha az előzőleg kiírttól eltérő.
2012. okt. 15. 20:18
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

Értem tehát pl először legyen egy maximum rendezés vagy minimum az most mindegy és akkor úgy léptetésnél megfigyelni, hogy van-e egyenlő.


Ez végül is logikusabb, mintha összevissza lennének, mert így elég csak az i meg az i+1 egyes indexű elemeket összehasonlítani.

Köszi

2012. okt. 15. 20:31
 4/6 anonim ***** válasza:

Vagy esetleg ha nem olyan brutálisan sok a szám, akkor megcsinálhatod azt is, hogy elkezded beolvasni őket egy tömbbe és minden újabb számnál végigfutsz a tömbön, hogy szerepelt-e már benne. Ha nem, akkor beteszed, ha igen, akkor mész a következőre.


Nem lesz hatékony, de egyszerű mint egy faék.

2012. okt. 15. 21:39
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:

És mi a helyzet akkor, ha kombinációkról van szó? Mondjuk 2 számból álló kombinációkról és azt akarom megnézni, hogy ez a kombináció vol-e már.

Tehát minden sor egy kombináció (T[i][2] és megakarom nézni , hogy az i. kombináció volt-e már.

Azt hogy tudom megcsinálni?

2012. okt. 15. 21:42
 6/6 iostream ***** válasza:

Erre is könnyedén írhatsz rendezést. A qsortnak amúgy is kell egy rendezőfüggvényt adni. Az eredeti két intet rendezett, pl így:

int compare(void* lhs, void* rhs)

{

return *(int*)(a) - *(int*)(b);

}

Akkor most így rendezel:

typedef struct

{

int x, y;

} IntPair;

int compare(void* lhs, void* rhs)

{

IntPair lhs = *(IntPair*)(lhs);

IntPair rhs = *(IntPair*)(rhs);


if (lhs.x == rhs.x)

{

return lhs.y - rhs.y;

}

return lhs.x - rhs.x;

}


Vagy ilyesmi, rég C-ztem.

2012. okt. 16. 07:51
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!