一个简单的c++ function,为什么没有输出啊!

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都不满足条件,所以不会有任何输出