我是一個初學者的編碼器,我需要一些關於如何我的代碼可以輸出正確的語法的想法。邏輯錯誤,需要幫助不能找出循環邏輯
如果我輸入數字輸出和額外的「,」,因爲它仍然貫穿並看到(amount_left> 0)。 我如何做到這一點,如果不存在四分之一或一角硬幣它不會輸出「,」?
#include <cstdio>
#include <iostream>
using namespace std;
void compute_coins(int coin_value, int& number, int& amount_left);
int main(){
int amount_left, number;
while(amount_left > 1 || amount_left < 99){
cout << "Enter number of cents (or zero to quit):" << endl;
cin >> amount_left;
if (amount_left == 0){
break;
}
else{
cout << amount_left << " cents can be given as ";
compute_coins(25, number, amount_left);
if (number == 1){
cout << "1 quarter";
}
else if (number > 0){
cout << number << " quarters";
}
if (amount_left > 0){
cout << ", ";
}
compute_coins(10, number, amount_left);
if (number == 1){
cout << "1 dime";
}
else if (number > 1){
cout << number << " dimes";
}
if (amount_left > 0){
cout << ", ";
}
compute_coins(1, number, amount_left);
if (number == 1){
cout << "1 penny";
}
else if (number > 1){
cout << number << " pennies";
}
std:: cout << ".";
}
cout << endl;
}
return 0;
}
void compute_coins(int coin_value, int& number, int& amount_left){
number = amount_left/coin_value;
amount_left = amount_left - (number * coin_value);
}
當'amount_left'爲零時,在檢查它們之前,您的代碼中的硬幣和便士會發生什麼情況? – 1201ProgramAlarm
我試着在循環之外放入amount_left if else參數。但是在每次輸出結束時,我只能得到一個句號,如果有一角錢或一分錢,就沒有逗號。 –
你可以試試。在調試器中瀏覽它,看看發生了什麼。 – 1201ProgramAlarm