Kezdőlap › Fórumok › Programozás › C programozás
- This topic has 351 hozzászólás, 49 résztvevő, and was last updated 15 years, 5 months telt el by
valaki456.
-
SzerzőBejegyzés
-
2005-05-13-17:01 #2016096
Kéne egy c referencia…
2005-05-13-19:50 #2016097Hi
most irogatok egy progit és van egy két kérdésem.
1, kéne egy c fügvény ami gyököt von egy számból.
2, kéne egy c fügvény ami egy nem egész számot egészre kerekít, de mindenképp fölfelé (pl.: 1,1-bõl 2-t csinál).kösz
[align=right][snapback]134110[/snapback][/align]függvényt nem tudok, de tudsz írni egyet te is, a következõ képpen:
Eredmény=e^(ln(Alapszám)/N-edik_gyök)
Pontosabb leírás ebben a topikban2005-05-14-09:23 #2016098>1, kéne egy c fügvény ami gyököt von egy számból.
A math.h-t include-old be (szépen Magyarul 🙂 ), és abban van sqrt.>2, kéne egy c fügvény ami egy nem egész számot egészre kerekít, de mindenképp fölfelé (pl.: 1,1-bõl 2-t csinál).
Erre is van valami ceil (meg floor) függvény. Vagy a math.h-ban, vagy a tgmath.h-ban, vagy valami ilyesmi.
Vagy a cmath-ban, de az már c++.2005-05-15-09:34 #2016099én így oldottam meg a problémá:
Code:long int sqrt;
…
…
sqrt = (sqrt(number)) + 1tehát a number-bõl gyököt von a fügvény, kapunk egy lebegõpntos számot
hozzáadok egyett
majd az értéket letárolom egy egész változóban, tehát elvész a tört rész.ez így jó?
2005-05-15-09:35 #2016100Kedves dZsoeN!
Nem azért, mert én vagyok a „hûdeokos”, hanem, hogy tanuljunk:
C program nyelvben a ^ nem hatványozást, hanem XOR mûveletet jelent. 🙂
A · az pedig értelmetlen, nincs ilyen mûvelet.
Az atoi pedig nem egészre kerekítés, hanem karakteres szöveg (ami számot ábrázol) átalakítása számmá.Amúgy nem nagyon vannak ötlteim, csak hüeségek…
Na, végül is igazat is szóltál. 😀 (Bántás nélkül, csak a vicc kedvéért! 😆 )
2005-05-15-09:39 #2016101ez így jó?
Attól függ, hogyan és mire akarod használni. Ha pl a number 9, annak a gyöke ugye 3. Ezt is mindig fel akarod kerekíteni 4-re? Mert akkor jó.
Amúgy nem.2005-05-15-10:01 #2016102„sqrt = (sqrt(number)) + 1”
Ha minden esetben el akarod veszíteni a tört részt, akkor igen, bár tennék egy kis kiegészítést:
sqrt = (long int)sqrt(number) + 1
pl. number = 10, vagy 15 esetén is 4 az eredménymiért?
mert, az sqrt függvény miatt lebegõpontos kifejezésként kezeli az összeadást, erre viszont eben az esetben nincs szükség (amit mondtam, annak akkor van értelme, ha ez nyócmilliószor futna le ez a mûvelet, ugyanis a lp. mûvelet lassabb)(ha kerekítést akarsz, azt is meg lehet oldani, de esetleg nagyon oda kell figyelni, hogy a szám –e, vagy +)
2005-05-15-10:13 #2016103a kerekítés pl megvalósítható:
a ceil függvénnyel, mely mindent felfelé kerekít ill.
a floor fgv-nyel, mely mindet lefelé kerekítbár a legjobb megoldás (legegyszerûbb is), ez lehet:
int round(double a) {
return (a + 0.5);
}
ha a egész szám, akkor akkor lefelé kerekít, ha a törtrésze nagyobb, mint 0.5, akkor az összeg nagyobb lesz, mint a+1, amit szintén lefelé kerekít (egyszerû, de nagyszerû megoldás)2005-05-15-10:34 #2016104Attól függ, hogyan és mire akarod használni. Ha pl a number 9, annak a gyöke ugye 3. Ezt is mindig fel akarod kerekíteni 4-re? Mert akkor jó.
Amúgy nem.igen ettõl eltekinthetünk nem számit, de aszem a ceil fügvényt fogom használni a célra.
2005-05-15-10:52 #2016105megtudná mondani valaki hogy a ceil fügvény mejik headerben található meg? Nem találom a glibc doksiában.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz