0

forループに2つのfloatを追加しようとしていますが、「+」と表示しても効果はありません。2つの範囲(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 に答える