Két tömb elemeit hogyan lehet egymáshoz adni?
C-ben, adott 2 tömb x és y elemszámmal. Össze kéne adni az egyik tömb 1. tagját a másik tömb 1. tagjával, és így tovább.
Ha az egyik "elfogy", akkor újra az 1. tagját adjuk hozzá a másik tömbhöz, majd a 2.-at stb. (Tehát a rövidebb tömb elemei annyiszor ismétlődhetnek, amíg a hosszabb tömb végére el nem jutunk.) A tömbök elemei +, egész számok, az utolsó elem mind2-nél a 0, az jelzi, hogy vége a tömbnek.
Végeredménynek egy 3. tömböt kell kapni az összeadott elemekkel.
Oké, de hol akadtál el?
Az x és az y elemszámok, illetve a tömb elemeinek végjelig (0) történő bekérésénél? A tömbök (a kisebb, a nagyobb és az eredmény) létrehozásánál? A feltöltésüknél?
Annak eldöntésénél, hogy az x vagy az y elemszámok a nagyobbak?
A nagyobb tömbön való végigiterálásnál? A nagyobb és a kisebb tömb megfelelő elemének összeadásánál és a végeredményt tároló tömbbe való hozzáadásánál? A végeredmények kiírásánál?
Szívesen SEGÍTÜNK, de ne várd el tőlünk, hogy MEGOLDJUK HELYETTED - szóval mutasd a forráskódot, hogy meddig jutottál vele.
Szia,
kb. "A nagyobb tömbön való végigiterálásnál? A nagyobb és a kisebb tömb megfelelő elemének összeadásánál és a végeredményt tároló tömbbe való hozzáadásánál?"
Odáig (elméletben) megvan, hogy for ciklussal kéne végigmenni mindkét tömb tagjain, összeadni őket és valahogy ezeket az összegeket "belepakolni" egy új tömbbe, csak ennek a megvalósítására nem jövök rá.
Az elsőnek is köszönöm, de sajnos nem jött be...
new1.c:1:11: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘!’ token
szurkolunk!
^
Azóta jutottam előrébb is, most épp az a gondom, hogy, ha elfogy a kevesebb tagból álló tömb, onnantól kezdve rossz eredményeket ír ki. Tehát vhogy azt az elejéről kéne megint kezdeni viszont a másik tömbben meg ugyan ott kéne folytatni ahol abbahagytuk.
Ha gondolod felrakom ezt az új verziót is.
u.i.: ha esetleg más is rátalál erre a kérdésre nyugodtan bekapcsolódhat és segíthet :)
Azt a verziót mondom amit látok, bár nem tudom miért így írtad a linket. Nem engedte berakni?
A belső for ciklusnál -1 -el hasonlítasz össze, nem is értem miért.
Tudod hogy mit csinálna ez, feltéve ha rendesen lenne megírva 0 végjelig mind a két ciklus?
A két tömb Descartes-szorzatát szorzatát járná be, azaz egyik tomb1 minden elemét tomb2 minden elemével veszi.
nem is hiszem, hogy for ciklus lenne erre a legkézenfekvőbb. While ciklussal.
Használnék 2 darab változót tömbindexelésnek a tömbökre külön-külön hogy hol tartanak a végigjárásnál. 2 darab logikai változót is hogy végigért e az adott tömbön azt tárolná. Ha végigért az egyik akkor a megfelelő index változó legyen lenullázva! Jó tudom nincs logikai változó c-ben, akkor 2 int-et ennek használva. Közben meg adogatnám össze a 3.-ik tömbbe. Ha mind a két logikainak kezelt változó igaz akkor hagyja abba. Az osszeadas függvény ne a main-be legyen benne és 3 paramétere legyen, a 3.-ik legyen az eredmény tömb mely legyen legalább akkora mint a nagyobbik
"Ha gondolod felrakom ezt az új verziót is."
Az jó lenne, mert...
* a feladat előre definiált tömböket - ahol az első a nagyobb és a második a kisebb - ad meg, vagy a felhasználótól vár bemenetet - mind a tömbök mérete, mind a megadott számok tekintetében?
* #7-es sor: miért 128 elemű a tömb, mikor a nagyobb tömb is csak 32 elemű?
* #8-as sor: mit keres egy függvénydeklarálás a függvényen belül?!?! Értelmetlen dolog, felesleges.
* #11-es sor: minek a belső for ciklus? Mikor fogjuk a tomb1 0. elemét (38), akkor végigmegyünk a tomb2 összes elemén? Minek? Felesleges.
Itt az új: 5NX1KpLD
és igen, nem engedte bemásolni a rendes linket.
Az előzöhöz annyit, hogy a -1 az elírás volt, oda is 0-t akartam.
A tömbök előre megvannak adva, a tomb1 nem rövidebb, mint a tomb2 (tehát vagy egyenlőek, vagy a tomb1 hosszabb).
Habár nem a felhasználó adja meg az elemeit, a tömb tagjainak száma és értéke változhat, én most csak beírtam számokat, hogy ezt az összeadósdit kipróbálhassam.
A tomb3-nak azért van megadva méret, mert különben errort ír ki, ezért beírtam csak úgy egy számot.(nyilván ez így nem túl jó, mert az eredeti tömbök akár hosszabbak is lehetnek).
A többi kérdésre nem tudok válaszolni, az előző még ilyen félkész/próbálgatós kód volt.
#8 minden szava aranyat ér, még annyit tennék hozzá laikusként, hogy a nemkívánatos módon mainen belülre került függvény akár működhetne is (ha meg lenne írva), csak nem ártana meghívni valahol.
A tomb3-mal nem az volt a probléma, hogy megadtad a méretét, hanem azzal, hogy úgysem lesz nagyobb tomb1-nél, akkor miért nem ahhoz igazodsz?
Az a j változó meg klasszul elfér még a programban, kár volt kidobnod a fölösleges belső ciklussal együtt.
Meg éppenséggel meghagyhattad volna függvénynek az összeadást, elég lett volna kirakni a mainből.
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!