C programozás Mátrix-vektor feladat?
Egy adott időszakban n számú vállalat egymással folytatott adás-vétel forgalmát egy R
négyzetes mátrix tartalmazza, amelynek r(ik) eleme az i-edik eladó és a k-adik vevő közötti
vásárlás értékét jelenti forintban. E mátrix elemeinek soronkénti összege egy vállalat összes
eladásának, oszloponkénti összege pedig az összes vásárlásának nagyságát fejezi ki. Hány
vállalat eladásainak összege haladja meg a vásárlásait és melyek ezek a vállalatok (index-szel
azonosítva)?
(Megj.: az említett mátrix főátlójának minden eleme 0.)
És még annyi, hogy a tömböknek dinamikus memóriafoglalással kéne helyet foglalni.
Valaki le tudná írni hogy, hogy van és elmagyarázni minden lépést?
1. Be kell kérni (vagy fájlból olvasni) a vállalatok számát (jelöljük n-nel).
2. Memóriafoglalás a kétdimenziós tömbnek (mátrixnak).
3. A mátrix elemeinek bekérése/beolvasása.
4. Végig kell menni a vállalatokon (0<=i<n) és megvizsgálni, hogy a i. sornak vagy az i. oszlopnak nagyobb az összege. Ha a sornak, akkor kiírod az indexét és közben számolod az ilyen jó esetek számát (jo++)
5. Kiírod jo-t, mert ennyi a feltételnek megfelelő vállalat száma.
Felteszem, végig szeretne iterálni a sorokon és az oszlopokon is.
Én a helyedben, kedves kérdező, csak egyszer mennék végig a mátrixon (ami értelemszerűen egy kétdimenziós tömb, így ezt egymásba ágyazott ciklusokkal tudod a legegyszerűbben megtenni).
Minden egyes érintett elem vagy
- Egy eladás az i-edik cégnél és egy vásárlás a k-adik cégnél (mégis mi a túróért nem j?)
- Semmi, mert i == k és egyik cég sem bonyolít üzletet saját magával
Nyilván valahová fel kell jegyezned külön minden egyes vállalatnak az eladásait és a vásárlásait is...
Gondolkozz el, hogy ezek mit jelentenek, innentől tényleg triviális kell, hogy legyen a feladat; értelemszerűen nem fogjuk a szádbarágni a konkrét megoldást, illetve forráskódot.
A dinamikus memóriafoglalást illetően pedig a Google a barátod. Ha nem tudod használni, akkor a compilert se piszkáld addig, amíg ezt meg nem tanultad. (tipp: google how to use google)
Sehol nem tanítják meg normálisan a dolgokat, mindenhol magadra vagy utalva.
Továbbra is csak azt tudom mondani, hogy két egymásba ágyazott ciklussal iterálj végig az adatokon, és ahol i == k, ott ne csinálj semmit, egyéb esetben pedig add hozzá az értéket i-edik vállalat eladásaihoz és k-adik vállalat vásárlásaihoz is.
A végső kérdés megválaszolásához vagy lecsekkolod mind az i-edik, mind a k-adik cég adatait minden egyes írásnál, vagy a mátrix kiértékelése után végigiterálsz az egyes vállalatokon és mindegyikre ellenőrzöd, hogy csinált-e profitot.
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!