我一直在嘗試編寫一些代碼,要求用戶爲會計程序記錄多個借記條目。如果用戶給出5作爲答案,那麼在繼續下一行代碼之前,程序應該向他詢問借方條目的名稱和金額5次。所以,我用循環來解決這個問題,似乎有些奇怪的事情正在發生。
這是在被編譯和執行時的代碼應該運行格式:
多少借記條目做您希望做?:2
1.借記名稱:例1
1.借方金額:123
2.借記條目名稱:示例2
2.借方金額:456
繼續到下一行代碼
下面是我用C++編寫的會計程序的這部分代碼:對於C++中的循環 - 變量未被正確遞增
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "How many debit entries do you wish to make?: ";
int entries;
cin >> entries;
string debitNames[50];
float debitAmounts[50];
int offset = 0;
int number = 1;
for (offset = 0; offset < entries; offset++)
{
cout << number << ". Debit Entry Name: ";
cin >> debitNames[offset];
cout << number << ". Debit Amount: ";
cin >> debitAmounts[offset];
for (number = 1; number <= entries; number++)
{
}
}
char response;
cin >> response;
return 0;
}
結果是非常奇怪的,這裏是發生了什麼當我編譯並運行它:
多少借記條目做你希望做?:5
1.借記條目名稱:示例1
1.借方金額:123
6.借記條目名稱:示例2
6.借方金額:123
6.借記條目名稱:示例3
6.借方金額:123
6.借記條目名稱:範例4
6.借方金額:123
6.借記條目名稱:例5
6.借方金額:123
繼續執行的代碼
程序下一行,上市爲1的號碼後,突然跳下6並保持在那裏,直到所有的5套題已要求。正如你現在所知道的,我使用'數字'變量來簡單地告訴用戶已經按照用戶自己的指定詢問'數字'條目。嘗試在編譯器中運行此代碼並查看是否出現相同的結果。順便說一下,我使用的是Visual C++ 20120 Express Edition,這可以解決這個問題嗎?
非常感謝。
感謝'atornblad',這比我寫出來的代碼好得多。謝謝你的合作。 – 2012-02-09 09:57:47
但還有一件事,for循環爲什麼通過(entries + 1)增加'number'變量?語法上for循環是正確的。那麼爲什麼會發生? – 2012-02-09 10:04:01
是的,但for循環爲每個循環設置'number'變量爲'1',然後爲每個循環增加'number'變量五次。而不是循環內的**循環**你應該只寫了'number ++;'而不是整個內循環。 – 2012-02-09 10:21:57