0

我试图在 for 循环中添加两个浮点数,它告诉我 '+' 没有影响。我试图让它解析两个范围(begrate 和 endrate)(1 和 2)的每个增量(.25),并且 1+.25 无法正常工作,我得到一个无限循环

float begrate,endrate,inc,year=0;

cout << "Monthly Payment Factors used in Compute Monthly Payments!" << endl;
cout << "Enter Interest Rate Range and Increment" << endl;
cout << "Enter the Beginning of the Interest Range:  ";
cin >> begrate;
cout << "Enter the Ending of the Interest Range:  ";
cin >> endrate;
cout << "Enter the Increment of the Interest Range:  ";
cin >> inc;
cout << "Enter the Year Range in Years:  ";
cin >> year;

cout << endl;

for (float i=1;i<year;i++){
    cout << "Year:  " << "     ";
    for(begrate;begrate<endrate;begrate+inc){
        cout << "Test " << begrate << endl;
    }
}
system("pause");
return 0;
4

3 回答 3

7

那是因为 begrate+inc 对 begrate 的值没有影响。+ 运算符与 ++ 运算符不同。您必须将结果分配给某些东西才能产生效果。你想要的是这样的:

begrate = begrate + inc

或者

begrate += inc
于 2012-09-10T16:59:38.913 回答
4

您可以使用 += 而不是 +,因为这将设置begratebegrate+inc. 更好的解决方案是有一个开始等于 begrate 然后递增它的临时循环变量。

for (float i=1;i<year;i++){
    cout << "Year:  " << "     ";
    for(float j = begrate;j<endrate;j+=inc){
        cout << "Test " << j << endl;
    }
}
于 2012-09-10T17:00:35.980 回答
3
Just replace the following line

for(begrate;begrate<endrate;begrate+inc){


with

for(begrate;begrate<endrate;begrate+=inc){

注意这里的 begrate* += *inc

于 2012-09-10T17:08:11.983 回答