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

Cevap