2016-11-06 2 views
-2

Я пытаюсь написать программу для расчета изменений, но она не работает. Я думаю, что проблема в том, что долг 1/заплатил 1; когда я пытался напечатать там значения, я ничего не получил (0). Любая помощь?C программа для вычисления изменения

#include <stdio.h> 

int main() 
{ 
double owed, paid; 
int dollars, quarters, dimes, nickels, cents, remainder, owed1, paid1; 
printf("how much did the customer have to pay ?\n"); 
scanf("%f",&owed); 
printf("how much did the customer pay ?\n"); 
scanf("%f",&paid); 
owed1 = owed * 100; 
paid1 = paid * 100; 
int change = paid1 - owed1; 
dollars = change/100; 
remainder = change % 100; 
quarters = remainder/25; 
remainder = remainder % 25; 
dimes = remainder/10; 
remainder = remainder % 10; 
nickels = remainder/5; 
remainder = remainder % 5; 
cents = remainder; 
printf("%d",dollars); 
printf("Dollars:%d, Quarters:%d, Dimes:%d, Nickels:%d, Cents:%d", dollars , quarters , dimes , nickels , cents); 
return 0; 
} 
+2

Правильный инструмент для решения таких проблем - ваш отладчик. Перед тем, как просить о переполнении стека, вы должны пропустить свой код по очереди *. Для получения дополнительной информации, пожалуйста, прочтите [Как отлаживать небольшие программы (Эрик Липперт)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Как минимум, вы должны \ [изменить] ваш вопрос, чтобы включить пример [Минимальный, полный и проверенный] (http://stackoverflow.com/help/mcve), который воспроизводит вашу проблему, а также замечания, сделанные вами в отладчик. –

ответ

0

Вы используете %f в вашем зсапЕ, который является спецификатором формата для поплавка, но ваши переменные двойники. Вы должны использовать %lf вместо:

scanf("%lf",&owed); 

То же самое для paid. Вы должны получить предупреждение от своего компилятора об этом.

Смежные вопросы