Hogyan kéne ennek helyesen kinéznie?
A feladat:
Írj gcd azonosítójú függvényt (gcd: greatest common divisor), mely kiszámolja és visszaadja két pozitív egész szám legnagyobb közös osztóját. A függvény dolgozzon az euklideszi algoritmus szerint.
Írj relative_primes azonosítójú függvényt, mely visszaadja, hogy a paraméterként kapott két pozitív szám relatív prím-e. Két szám akkor relatív prím, ha legnagyobb közös osztójuk 1. A relative_primes függvény ne végezzen aritmetikai műveleteket, hanem a legnagyobb közös osztót a gcd függvény hívásával határozza meg.
Írj főprogramot (main), mely számpárokat olvas a standard inputról, amíg csak tud. A program feladata kiírni a standard outputra a relatív prím párok darabszámát. A főprogram ne végezzen a vizsgálathoz közvetlen aritmetikai műveleteket, hanem a relative_primes függvényt hívja!
Amit én csináltam eddig:
gcd()
Ez kicsit messze van az euklideszi algoritmushoz, de ettől eltekintve:
Legalább ne x-ig menj, hanem a kettő közül a kisebbik számig.
Valamint ha "i<x"-et írsz és mondjuk x=4, y=8, akkor 2-t fog írni gcd-re, miközben 4 lenne.
"oszto<i" miért kell? Nem lehet benne i-nél nagyobb ha egyszer i folytonosan növekszik.
relative_primes()
"Két szám akkor relatív prím, ha legnagyobb közös osztójuk 1"
A feladat leírta, hogy mit kell vizsgálnod. Nem kell ciklus.
booleant adj vissza! Vagy 0/1.
main()
Mindig felülírod a "db" értékét a ciklusban.
Itt egy if kellene és ha megfelel a feltételnek, akkor db++;
#3 és abból mégis mit tanul, hogy beadja mások megoldását??
Viszont az Euklideszi algoritmusnak nézz utána!
Nem bonyolult leprogramozni.
Nézd át a korábbi feladataidból, hogy egy függvénynek hogy kell átadni a paramétereket, mert az most kifelejtetted!
A boolean-t felejtsd el egyelőre, ha még nem volt róla szó.
Lényeg, hogy adj vissza 1-et, ha "igen", és 0-t, ha "nem".
Tehát a relative_primes függvényedbe elég ennyi:
if (gcd(x, y) == 1) {
return 1;
}
return 0;
Ennek nem kell megmondania, hogy mekkora a legnagyobb közös osztó. Annyi érdekel összesen, hogy 1 vagy nem 1.
Mert ha 1, akkor relatív prímek, egyébként nem.
"if(relative_primes(k, z)==)"
Ilyen nincs :)
Ide vagy azt írd, hogy "relative_primes(k, z) == 1" vagy egyszerűen csak ennyi legyen a zárójelben: "relative_primes(k, z)"
Ha 1-et vissza a függvény, akkor azt igaznak fogja kiértékelni, ha 0-t, akkor azt hamisnak.
Valószínűleg csak én vagyok a béna, de én a neten se találtam olyasmit,ami segítene. Most valahogy így van a programom. Így már jobb valamennyivel?
Pár dolog a codeshare-ről:
- Állítsd be legalább, hogy C nyelv, ne nekünk kelljen mindig!
- Nem kell mindig új link, tudod módosítani
- Egyébként nem pont erre való, mert bárki átírhatja az egészet ha így publikálod a linket
A függvényeidnek továbbra sincs bemenő paramétere.
Nézd át, hogyan kell saját függvényeket írni!
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!