z'yi sabit tutmak yerine, verdigin her paradan sonra o kadar kurusu z'den eksilterek devam etsene. muhtemelen aradaki bölme islemlerinde integer/float cevrimlerinde kayip olusuyor.
-üstün 2009/10/25 papatya prenses <[email protected]>: > merhaba. programın amacı şu: kullanıcıdan müşterinin ödemesi gereken ve > verdiği para isteniliyor.daha sonra kasiyerin müşteriye vereceği para > hesaplanıp 1tl,50kr,25kr,10kr ve 5 kr olarak ekrana yazdırılıyor. ama > program her zaman doğru sonucu vermiyor. örneğin 1.65 ve 5.00 liranın farkı > olan 3.35 lirayı ayırırken 3 tane 1lira, 0 tane 50kr,1tane 25kr, 0tane 10kr > ve 1 tane 5 kr olarak hesaplıyor. > > > #include "stdio.h" > #include "stdlib.h" > > int main() > { > float p,r,c; > double y; > int z; > > printf("enter the amount the customer should pay:"); > scanf("%f",&p); > printf("enter the amount recieved by the customer:"); > scanf("%f",&r); > > c=r-p; > y=c*100; > z= (int) y; > > printf("\nthe difference (change) is %.2f TL\n\n",c); > > printf("%d of 1TL\n",(int)c); > printf("%d of 50k\n",z%100/50); > printf("%d of 25k\n",z%100%50/25); > printf("%d of 10k\n",z%100%50%25/10); > printf("%d of 5k\n",z%100%50%25%10/5); > > system("PAUSE"); > return 0; > } > ilginize teşekkürler.. > _______________________________________________ > Linux-programlama mailing list > [email protected] > http://liste.linux.org.tr/mailman/listinfo/linux-programlama > > _______________________________________________ Linux-programlama mailing list [email protected] http://liste.linux.org.tr/mailman/listinfo/linux-programlama
