簡體   English   中英

為什么無法讓用戶輸入與結果一起輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM