Kezdőoldal » Számítástechnika » Programozás » Hogy tudok leválogatni?

Hogy tudok leválogatni?

Figyelt kérdés
SZóval van egy egy struktúrám amiben focimeccsek vannak. Van 112sor. Ki akarom válogatni hogy milyen csapatok vannak benne. Milyen úton induljak el?
2014. máj. 8. 21:45
 1/10 Tengor ***** válasza:

Nem túl bőbeszédű a leírás...

Általánosan, nagyon egyszerűen: fogj egy üres csapat listát, amibe a csapatok vannak. Menj végig a meccsek listáján. Ha olyan csapatot találsz, ami nincs még a csapat listában, akkor tedd bele.

Ennél szebb megoldás, ha csapat lista helyett csapat halmazt használsz. Akkor nem is kell figyelni, hogy volt-e már egy csapat v. sem, mindet bele kell dobálni, mert a halmazban egy elem csak egyszer fog szerepelni.

2014. máj. 8. 21:50
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:
Ezeket C++-ba hogy bírom megvalósítani? Próbáltam do while ciklussal de valamiért akad a dolog;
2014. máj. 8. 21:51
 3/10 Tengor ***** válasza:

Halmazos: [link]

do-while-al is megcsinálható, bár ha fix a lista, akkor célszerűbb for ciklussal végigmenni rajta.

Egy forral mégy a meccs listán, és egy másikkal pedig az előzőn belül ellenőrzöd, hogy benne van-e már a csapatlistában az adott csapat.

Kódod tedd fel valahova és belenézünk!

2014. máj. 8. 21:59
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:
Nincs lista ami alapján lehetne keresni :/ Pont azt akarom én is létrehozni.
2014. máj. 8. 22:01
 5/10 Tengor ***** válasza:

[link]

De akár egy sima c stílusban létrehozott 56 méretű tömb is tökéletesen elég a célra.

2014. máj. 8. 22:04
Hasznos számodra ez a válasz?
 6/10 A kérdező kommentje:

#include <iostream>

#include <fstream>

#include <string.h>

using namespace std;

struct foci

{

int ford,vegh,vegv,fh,fv;

string cs1,cs2;

};

struct seged

{

string segi;

};

seged ti[112];

foci t[112];

int tilt(string szo){

int oke,j;

oke=0;

for(j=0;j<112;j++){if (ti[j].segi==szo) oke=-1;}

return oke;

}

int main()

{

ifstream be;

be.open("meccs.txt");

int msz;

be >> msz;

int i;

for (i=0;i<msz;i++)

{

be >> t[i].ford >> t[i].vegh>>t[i].vegv>>t[i].fh>>t[i].fv>> ws;

getline(be,t[i].cs1,' ');

getline(be,t[i].cs2);

}

int mehet;

ti[0].segi=t[0].cs1;

for (i=1;i<112;i++)

{

do

{

string sg;

sg=t[i].cs1;

mehet=tilt(sg);

}

while (mehet!=0);

}

}


a feldolgozó fájl itt van: data.hu/get/7682542/meccs.txt

Úgy próbáltam hogy a segéd tömb első eleme az eredeti tömb első eleme. Ahhoz hasonlítja a tömb többi elemét. De végtelen ciklusba megy és akárhogy nézem nem jövök rá.

2014. máj. 8. 22:19
 7/10 anonim válasza:

Egyszerűen csak if el hogy melyik csapat pl

csinálsz valamilyen néven egy struktúrát(csapat) és utána bekéred a csapatott egy változóba pl v[20] utána if(csapat.nemzet==v){db++

printf("%d. csapat %d db",i++,db);}

ahol i=a sorok számával amit be is kérhetsz vagy adott (112)

for(i=0;i<112;i++)

Valahogy igy

2014. máj. 12. 07:36
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:
De nincs előre deklarált listám. Próbáltam már mindenféle képpen de sehogyse sikerült.
2014. máj. 12. 13:34
 9/10 anonim válasza:

Hát nem tudom mert nekünk megvan a feladatban ,hogy néz ki a "táblázat" (felsorolás jellegű) abból csinálok egy tpedef struct -ot és utána be kell kérni a falhasználótól a fáj nevét utána open és mehet az feladat kérdéseire a megoldások.

Ez iskolai feladat? Mert mindenképpen kell egy tpedef anélkül nem megy.

2014. máj. 12. 17:15
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:
Nem ez nem sulis feladat. Ez már emelt szintű érettségi. Mármint maga ez a feladat amihez segítséget kértem az saját.Typedef-et c++ kell használni?
2014. máj. 12. 21:05

További 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!