C++-ban hogy lehet kiíratni egy tömb összes elemét?
Van egy feladatom, miszerint meg van adva N darab állomás, indulási és érkezési időkkel, és adjam meg, hol áll meg a villamos, és mennyi az össztáv, amit megtesz. Akkor áll meg a villamos, ha az indulási idő egyenlő az érkezési idővel. Most az ennek megfelelő tulajdonsággal bíró elemeket raktam át egy tömbbe, viszont szeretném kiíratni, hogy mely elemek kerültek bele a tömbbe. Jelen pillanatban csak egy értéket irat ki: a legutolsót, ami megfelelt az értéknek. Hogy tudom az ÖSSZESET kiíratni vele?
A kódrészlet:
void allomas(int n, int ossz, double t[maxn], double ind[maxn], double erk[maxn]) {
double y[maxn];
int db = 0;
ossz = 0;
for (int i=0; i<=n; ++i) {
if (ind[i]==erk[i]) {
db = db+1;
y[db] = i;
ossz = ossz+t[i];
}
}
cout << "Az erintett szakaszok: " << y[db] << " es ossztavolsaguk: " << ossz << endl;
for(int i = 0; i <= db; i++){
cout<<y[i];
}
A cout-ban is iteráld végig a tömböt. És ha n a tömb hossza, amit bevettél (egyébként sizeof(tömb)/sizeof(típus)), akkor n-nél kisebb-ig iterálj, mert tömb[n]-nel már túolvastad, az utolsó elem n-1-nél van.
Még jobb, ha nem használod tovább az y tömböt, akkor ne vegyél fel neki tömböt, hanem az elejét (az érintett szakaszok:) írasd ki a függvénnyel (bónusz pont, akkor írod ki az első literált, amikor db átment 1-be, a másodikat, ha db >=1) kiírod automatikusan, utána, amikro talált állomást, rögtön cout-ra kiíratod, a loop után pedig odahegeszted a végét.
Még jobb, ha maxn-nel korlátozott tömb helyett osztályt, vagy valamilyen dinamikus adatszerkezetet használsz, pl. dinamikusan foglalt tömb.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!