2015-02-05 108 views
0

很新的程序員,我很難找到一種方法來設置這個問題。我有錢面值,一美元到一百美元。用戶必須輸入例如4美元,5美元5美元,並獲得29美元的總和。我很茫然,我一直試圖在這裏是我...如何添加貨幣面額C++

{ // dollar values 

    int n = std::numeric_limits<int>::max(); 
    int b = std::numeric_limits<int>::max(); 
    int dollarOne = 1; 
    int dollarTwo = 2; 
    int sum1;            // defines sum 


    cin >> n >> dollarOne; 
    sum1 = ((n*dollarOne)+(b*dollarTwo);        // sum function 


    cout << sum1 << endl;        // displays total amount 


    system("pause"); 
    return 0; 
} 

INT dollarAm1; int dollarAm2; int sum; cin >> dollarAm1; cin >> dollarAm2; sum =((dollarAm1 * 1)+(dollarAm2 * 2));

cout << sum << endl; 
+2

不應該'dollarTwo'等於5?這不代表5美元嗎?但我可能會讀錯,而不是C++專家。 – gwin003 2015-02-05 20:46:49

+1

對於* lookup *表格來說,這看起來很不錯。有一個的表格,其中「hundred」的值爲100美元。在表格中搜索字符串並提取值。 – 2015-02-05 20:47:07

+1

是的,'dollarTwo'應該是5而不是2.另外,用戶不被允許輸入多少五美元來使用,只有多少美元才能使用。 5美元的數目被設置爲最大整數。 – 2015-02-05 20:48:37

回答

1

嘗試更多的東西像這樣的,而不是(爲簡便起見處理刪除錯誤):

{ 
    int n; 
    int sum1 = 0; 

    cout << "How many $1 bills: "; 
    cin >> n; 
    sum1 += (n*1); 

    cin.clear(); 
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 

    cout << "How many $5 bills: "; 
    cin >> n; 
    sum1 += (n*5); 

    cin.clear(); 
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 

    cout << "How many $10 bills: "; 
    cin >> n; 
    sum1 += (n*10); 

    cin.clear(); 
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 

    cout << "How many $20 bills: "; 
    cin >> n; 
    sum1 += (n*20); 

    cin.clear(); 
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 

    cout << "How many $50 bills: "; 
    cin >> n; 
    sum1 += (n*50); 

    cin.clear(); 
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 

    cout << "How many $100 bills: "; 
    cin >> n; 
    sum1 += (n*100); 

    cout << "Total: $" << sum1 << endl; 

    cin.clear(); 
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 
    cin.get(); 

    return 0; 
} 
1

你缺少一個括號

sum1 = ((n*dollarOne)+(b*dollarTwo);

接下來,你應該使用cin.get()來結束你的程序,而不是system("PAUSE")。這在處理速度方面更爲有效。另外,您應該簡單地執行int n, b;來初始化變量。

你應該讀的輸入,像這樣:

std::cout << "Enter number of 1-dollar bills, and press \"Enter\". Next, enter number of 5-dollar bills:" << std::endl; 

cin >> dollarOne; 
cin >> dollarTwo; 
1
int n = 0; 
int b = 0; 
int dollarOne = 1; 
int dollarFive = 5; 
int sum1; // defines sum 


std::cin >> n; 
std::cin >> b; 

sum1 = (n*dollarOne)+(b*dollarFive); // sum function 


std::cout << sum1 << std::endl; // displays total amount 


system("pause"); 
return 0;