Sería de ayuda entender lo que quieres conseguir y qué es lo que no funciona como esperas.
sólo tenía que traducir este código a C.
algorisme change
var
price, paid, diff, current, qtt: enter;
priceWithCents, paidWithCents: real;
fvar
priceWithCents:= readReal();
paidWithCents:= readReal();
price:= realToInt(priceWithCents * 100.0 + 0.5);
paid:= realToInt(paidWithCents * 100.0 + 0.5);
diff:= paid – price;
writeReal( intToReal(diff) / 100.0 );
current:= 50000;
mentre diff > 0 fer
05.554 · FP· PAC1 · 2013-01 · Programa · Estudis d’Informàtica Multimèdia i Telecomunicació
14
si qtt > 0 llavors
writeInteger( qtt );
writeReal( intToReal(current) / 100.0 );
fsi
diff:= diff mod current;
si current = 50000 o current = 5000 o current = 500 o current = 50 o current = 5 llavors
current:= realToInt( intToReal( current ) / 2.5 );
sino
fsi
fmentre
falgorisme
Otra cosa mas!!
el or se escribe hace con doble barra vertical ||
ahora sólo tengo problemas con el diff
el diff primero lo declaro asi pq el algoritmo calcula cuantas monedas/billetes dar de cambio.
El primero hace efectivo entregado-precio
el segundo sirve para pasar a un billete/moneda más pequeño
lo que no entiendo es pq va mal el primero y el segundo no
quizá sea de ayuda decir que en el error del diff dice: expected ";" before price