[英]Why can't I get the user input to output with the result
我正在這個貨幣項目上工作,應該輸出組成零錢的方式,例如,當我輸入2美元時,程序應輸出293種方式。 我讓程序正常運行,但是無法使程序打印出正確的結果,例如,我希望將程序打印出來
There are [the number of ways] ways to make up [user input]
但是我的程序沒有打印出最后一部分[用戶輸入]
以下代碼的輸出為[輸入2時]
有293種彌補方法//用戶輸入缺失
#include <iostream>
#include <cmath>
using namespace std;
int currency[11] = { 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10, 5 };
int f20(int n, int j)
{
int i = 0, t;
if (n == 0) return 1;
else
{
if (n<5) return 0;
}
for (t = 0; t<11; t++)
if (n >= currency[t] && j >= currency[t])
i += f20(n - currency[t], currency[t]);
return i;
}
int main(void){
int counter;
float usernum;
do{
cout << "Enter Total amount:";
cin >> usernum;
usernum = usernum * 100;
for (counter = 0; counter<11; counter++)
if (currency[counter] <= usernum)
{
printf("There are %d ways to make up \n\n", f20(usernum, currency[counter]), usernum); break;
}
} while (usernum != 0);
return 0;
}
問題出在您的if語句中。 currency [0]等於10000。如果先是usernum = 2,則usernum * 100 =200。現在,是10000 <200嗎? 否,因此評估為假,並且不會顯示您的答案。 重新考慮您的狀況。
好吧,您不認為應該-
printf("There are %d ways to make up %d \n\n", f20(usernum, currency[counter]), usernum); break;
代替 -
printf("There are %d ways to make up \n\n", f20(usernum, currency[counter]), usernum); break;
您錯過了%d
謝謝大家的幫助,我接受了ooga的建議,擺脫了printf的困擾,而是插入cout並解決了問題。
cout << "There are " << f20(usernum, currency[counter]) << " ways to make up : " << usernum / 100 << "\n\n"; break;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.