void compute_coins(int amount){
int i(0),a(0),b(0);
int amount1 = amount;
string i1 = " quarter, ";
string a1 = " dime, ";
string b1 = " penny";
while(amount>=25){
amount-=25;
i++;
}
if(i>1){
i1 = " quarters, ";
}
while(amount>=5){
amount-=5;
a++;
}
if(a>1){
a1 = " dimes, ";
}
while(amount>=1){
amount-=1;
b++;
}
if (b>1){
b1 = " pennies";
}
if(i>1&&a>1&&b>1){
cout<<amount1<<" cents can be given in "<<i<<i1<<a<<a1<<b<<b1<<"."<<endl;
}
else if(i>1&&a>1&&b==0){
cout<<amount1<<" cents can be given in "<<i<<i1<<a<<a1<<"."<<endl;
}
else if(i>1&&a==0&&b>1){
cout<<amount1<<" cents can be given in "<<i<<i1<<b<<b1<<"."<<endl;
}
else if(i>1&&a==0&&b==0){
cout<<amount1<<" cents can be given in "<<i<<i1<<"."<<endl;
}
else if(i==0&&a>1&&b>1){
cout<<amount1<<" cents can be given in "<<a<<a1<<b<<b1<<"."<<endl;
}
else if(i==0&&a>1&&b==0){
cout<<amount1<<" cents can be given in "<<a<<a1<<"."<<endl;
}
else if(i==0&&a==0&&b>1){
cout<<amount1<<" cents can be given in "<<b<<b1<<"."<<endl;
}
}
这个function不知道为什么一输入25以上的数字就没有输出了。但是quarter那一部分感觉也没问题啊?
求解!
while(amount>=25){
amount-=25;
i++;
}
做了控制,大于25时amount=-25了。
不是大于25的问题,主要是你的程序没有考虑i,a,b等于1的情况
你只判断了它们大于1和等于0的情况,只要任何一个等于1,你的所有if...else都不满足条件,所以不会有任何输出