我是一个初学者的编码器,我需要一些关于如何我的代码可以输出正确的语法的想法。逻辑错误,需要帮助不能找出循环逻辑
如果我输入数字输出和额外的“,”,因为它仍然贯穿并看到(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