[英]For loop and conditional statement to calculate a value
嘗試使用下面設置的條件為Interest變量計算一個值,但由於它返回0而遇到麻煩,或者如果我重新安排for循環,則為每個帳戶返回6471。 如果您可以幫助我修復for循環,以便在控制台中顯示正確的興趣,那就太好了
#include <iostream>
using namespace std;
int main()
{
int AccountNumber[8] = { 1001, 7940, 4382, 2651, 3020, 7168, 6245, 9342 };
float Balance[8] = { 4254.40, 27006.25, 123.50, 85326.92, 657.0, 7423.34, 4.99, 107864.44 };
int DaysSinceDebited[8] = { 20, 35, 2, 14, 5, 360, 1, 45 };
int interest = 0;
//add your code here
cout << "Account Number\t" << "Balance\t\t" << "Days\t" << "Interest\t" << endl;
for (int i = 0; i < 8; i++)
cout << AccountNumber[i] << "\t\t" << Balance[i] << "\t\t" << DaysSinceDebited[i] << "\t" << interest << "\t" << endl;
for (int i = 0; i < 8; i++)
if (Balance[i] > 10000 || DaysSinceDebited[i] > 30)
interest = (Balance[i] * 0.06);
else
interest = (Balance[i] * 0.03);
system("pause");
return 0;
}
這是我的修改:
#include <iostream>
using namespace std;
int main()
{
int AccountNumber[8] = { 1001, 7940, 4382, 2651, 3020, 7168, 6245, 9342 };
float Balance[8] = { 4254.40, 27006.25, 123.50, 85326.92, 657.0, 7423.34, 4.99, 107864.44 };
int DaysSinceDebited[8] = { 20, 35, 2, 14, 5, 360, 1, 45 };
int interest = 0;
//add your code here
for (int i = 0; i < 8; i++)
if (Balance[i] > 10000 || DaysSinceDebited[i] > 30)
interest = (Balance[i] * 0.06);
else
interest = (Balance[i] * 0.03);
cout << "Account Number\t" << "Balance\t\t" << "Days\t" << "Interest\t" << endl;
for (int i = 0; i < 8; i++)
cout << AccountNumber[i] << "\t\t" << Balance[i] << "\t\t" << DaysSinceDebited[i] << "\t" << interest << "\t" << endl;
system("pause");
return 0;
}
int interest = 0;
您的代碼首先將interest
變量設置為0。
for (int i = 0; i < 8; i++)
cout << AccountNumber[i] << "\t\t" << Balance[i] << "\t\t" << DaysSinceDebited[i] << "\t" << interest << "\t" << endl;
接下來發生的是,您的代碼為每個帳戶打印了interest
變量的值。 由於interest
設置為0,因此您將看到打印的值0。
代碼中發生的下一件事是第二個循環,在該循環中,您將計算並設置每個帳戶的interest
。 很好,除了您已經顯示了interest
的值。
您需要在計算interest
后顯示interest
,而不是之前。
for (int i = 0; i < 8; i++)
{
if (Balance[i] > 10000 || DaysSinceDebited[i] > 30)
interest = (Balance[i] * 0.06);
else
interest = (Balance[i] * 0.03);
cout << AccountNumber[i] << "\t\t" << Balance[i] << "\t\t" << DaysSinceDebited[i] << "\t" << interest << "\t" << endl;
}
輸出:
Account Number Balance Days Interest
1001 4254.4 20 127
7940 27006.2 35 1620
4382 123.5 2 3
2651 85326.9 14 5119
3020 657 5 19
7168 7423.34 360 445
6245 4.99 1 0
9342 107864 45 6471
你應該搬家
cout << AccountNumber[i] << "\t\t" << Balance[i] << "\t\t" << DaysSinceDebited[i] << "\t" << interest << "\t" << endl;
到第二個循環。 它會打印相同的結果6471,因為您計算了所有值並將其重新放置到一個唯一的變量中,稱為興趣,但是您沒有在每次計算迭代中都顯示該變量,所以6471是最后一個元素的條件給出的最后結果數據向量。 然后,您應該對for循環的每次迭代都表現出興趣,就像:
for (int i = 0; i < 8; i++){
if (Balance[i] > 10000 || DaysSinceDebited[i] > 30)
interest = (Balance[i] * 0.06);
else
interest = (Balance[i] * 0.03);
cout << AccountNumber[i] << "\t\t" << Balance[i] << "\t\t" << DaysSinceDebited[i] << "\t" << interest << "\t" << endl;
}
此外, 利息必須是浮動的 。 希望對您有幫助:D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.