我一直在尝试编写一些代码,要求用户为会计程序提供几个借方条目。如果用户给出 5 作为答案,程序应该在继续下一行代码之前询问他借方条目的名称和金额 5 次。所以,我用 for 循环来解决这个问题,似乎发生了一些奇怪的事情。
这是代码在编译和执行时应运行的格式:
您希望创建多少个借项条目?:2
1. 借项条目名称:example1
1. 借项金额:123
2. 借项条目名称:example2
2.借方金额:456
继续下一行代码
这是我用 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.借方分录名称:example1
1.借方金额:123
6.借方分录名称:example2
6.借方金额:123
6.借方分录名称:example3
6.借方金额: 123
6.借记分录名称:example4
6.借记金额:123
6.借记分录名称:example5
6.借记金额:123
继续下一行代码
该程序在将数字列为 1 后,突然跳到 6 并一直停留在那里,直到问完所有 5 组问题。如您所知,我现在使用“数字”变量来简单地告诉用户“数字”条目已被询问,正如用户自己指定的那样。尝试在您的编译器中运行此代码,看看是否出现相同的结果。顺便说一句,我用的是Visual C++ 20120 Express Edition,这和这个问题有什么关系吗?
非常感谢。