на самом деле, его не показывают правильные изменения и total_price, приходят в том же самом, и в них есть отрицательные, а у психов - тоже проблема. Может кто-нибудь, пожалуйста, скажите мне, почему?программирование на языке поиска находок изменения
int main()
{
int items;
int loonies=0;
int cent=0;
float hst=0.13;
double change,tax, unit_price,purchase_price,total_price,cash_tendered;
printf("enter the number of items:\n");
scanf("%d",&items);
printf("enter the unit_price:\n");
scanf("%lf",&unit_price);
printf("cash_tendered:\n");
scanf("%.2lf",&cash_tendered);
purchase_price=items*unit_price;
tax=purchase_price*hst;
total_price=purchase_price+tax;
printf("price for items:%.2lf\n",purchase_price);
printf("price for items with tax:%.2lf\n",total_price);
change = cash_tendered - total_price;
loonies=(int)change;
cent=((change - loonies)*100);
printf("change:%.2lf\n",change);
printf("loonies:%d\n",loonies);
printf("cent:%d\n",cent);
return 0;
}
Опубликованный образец ввода, ожидаемый выход и наблюдаемый выход. –
Не работайте с реальными числами, вы получите ошибки округления. Работайте с 'int' в центах. Используйте также «int» для налоговой ставки, например «tax = purchase_price» hst/100'. Найдите способ ввода десятичного числа, а затем скопируйте его в 'int' в центах. –
это плохая форма: loonies = (int) change; вы должны использовать loonies = (int) floor (change); tgmath.h – tdbeckett