Mi a gond a kódommal? (php)
<?php
$osszeg = 6500;
$ezresek;
$szazasok;
$maradek;
while ($osszeg <= 0;){
$ezresek = floor($osszeg / 1000);
$maradek = $osszeg - ($ezresek*1000);
$osszeg = $maradek;
$szazasok = floor($maradek / 100);
$maradek = $osszeg / $szazasok*100;
$osszeg = $maradek;
}
echo "Ezresek $ezresek";
echo "Százasok $szazasok";
?>
meg kéne határozni, hogy hány db ezressel, ill. százassal kell fizetni ezt az összeget :\
Miért, mi a gond vele?
Mindenesetre a maradek változó totál fölösleges, ha meg pontatlan eredményt ad, az gondolom amiatt lehet, hogy 6500/1000-nek a felsőegészrésze az 6 és nem 7, ha egészosztás történik.
De php-ról lövésem sincs...
C++-ban:
int input, osszeg, ezresek, szazasok;
cout<<"Kérem az összeget: "; cin>>input; osszeg=input;
ezresek=osszeg/1000;
osszeg-=ezresek*1000;
szazasok=osszeg/100;
osszeg-=szazasok*100;
cout<<input<<" forintot "<<ezresek<<" db ezressel, és "<<szazasok<<" db százassal lehet kifizetni."<<endl;
Tudom, hogy felesleges, de a feladat így szólt, h while ciklussal kell elvégezni..
///( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\elso.php on line 9 ///
ezt a hibaüzenetet kapom
Ezután a while cikluson bellülre tettem a 2 kiíratást, de ekkor egy teljesen üres oldalt kapok, sem hibaüzenet, sem megoldás.. :\
Úgy, hogy soha nem láttam php kódot, 2 másodperc gugli és hibaüzenet alapján: a while feltételben zárójelen belül nem kell ;, de ezt kb szószerint írja is hibaüzenetben.
Valamint ha while ciklussal kell megcsinálni, akkor szar az egész.
Főleg, hogy most nézem, hogy azt vizsgálod, hogy addig kell menni, amíg az összeg kisebb egyenlő mint 0, ergo sosem fog belépni a ciklusba. :D
Igen, ezt a 2 hibát én is kiszúrtam rögtön a komment elküldése után szinte. :)
A gond az, hogy a feladat direkt erre van kihegyezve, a ciklusra, és nem lehet kihagyni.. :\ viszont köszi a segítséget :)
Ami először eszembe jut:
Ciklus amíg az összeg 0 nem lesz és folyamatosan vonogatsz ki belőle 100-at és közben számolsz egy változóba, hogy ezt hányszor csináltad.
Miután meg van az eredmény leosztod 10-el, annyi lesz az ezresek száma, a maradék meg a százasok száma.
int input, osszeg, db=0;
cout<<"Kérem az összeget: "; cin>>input; osszeg=input;
while (osszeg>0)
{
osszeg-=100;
db+=1;
}
cout<<input<<" forintot "<<db/10<<" db ezressel, és "<<db%10<<" db százassal lehet kifizetni."<<endl;
Lényegesen szebb, mert nem kerek dolgokra is működik.
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!