2016-11-06 8 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

このような問題を解決する適切なツールは、デバッガです。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低限、問題を再現する[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例と、その問題を再現するためのデバッガ。 –

答えて

0

あなたはフロートのための書式指定子であるあなたのscanf、に%fを使用しているが、あなたの変数が倍増しています。あなたは代わりに%lfを使用する必要があります。paidため

scanf("%lf",&owed); 

同じことを。コンパイラから警告が出ているはずです。

関連する問題