C++ 对于C++;-变量未正确递增
我一直在尝试编写一些代码,要求用户为一个会计程序输入几个借记条目。如果用户给出5作为答案,程序应该在继续下一行代码之前询问他借记分录的名称和金额5次。所以,我用循环来解决这个问题,似乎发生了一些奇怪的事情。C++ 对于C++;-变量未正确递增,c++,visual-c++-2010-express,C++,Visual C++ 2010 Express,我一直在尝试编写一些代码,要求用户为一个会计程序输入几个借记条目。如果用户给出5作为答案,程序应该在继续下一行代码之前询问他借记分录的名称和金额5次。所以,我用循环来解决这个问题,似乎发生了一些奇怪的事情。 这是编译和执行代码时应使用的格式: 您希望记入多少借方分录?:2 1.借方分录名称:示例1 1.借方金额:123 2.借方分录名称:示例2 2.借方金额:456 继续下一行代码 下面是我在C++中为会计程序的这部分写的代码:< /P> #include <iostream>
这是编译和执行代码时应使用的格式:
您希望记入多少借方分录?:2
1.借方分录名称:示例1
1.借方金额:123
2.借方分录名称:示例2
2.借方金额:456
继续下一行代码
下面是我在C++中为会计程序的这部分写的代码:< /P>
#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;
}
#包括
#包括
使用名称空间std;
int main()
{
cout>条目;
字符串debitNames[50];
浮动借记金额[50];
整数偏移=0;
整数=1;
对于(偏移量=0;偏移量<条目;偏移量++)
{
不能借记名称[抵销];
借方金额[抵销];
对于(数字=1;数字>响应;
返回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组问题都被问完为止。正如您所知,现在我使用'number'变量只是告诉用户已经问了'number'条目,这是用户自己指定的。试着在编译器中运行此代码,看看Am结果出现了。顺便说一下,我使用Visual C++ 20120 Express版,这对这个问题有什么帮助吗?
非常感谢。您的内部for循环将始终在条目+1处留下数字:
for (number = 1; number <= entries; number++)
{
}
for(number=1;number您的内部for循环将始终将number保留在条目+1处:
for (number = 1; number <= entries; number++)
{
}
for(number=1;number在循环之前,将number
变量设置为1
在循环内部,使用以下代码段将编号
变量设置为(条目+1)
:
for (number = 1; number <= entries; number++)
{
}
for(number=1;number在循环之前,将number
变量设置为1
在循环内部,使用以下代码段将编号
变量设置为(条目+1)
:
for (number = 1; number <= entries; number++)
{
}
用于(number=1;number您输出number
变量,该变量在循环到条目的内部中递增,
+1…您输出number
变量,该变量在循环到条目的内部中递增,
+1…显然,错误在代码的这一部分:
for (number = 1; number <= entries; number++)
{
}
for(number=1;number显然,这部分代码中存在缺陷:
for (number = 1; number <= entries; number++)
{
}
(数字=1;数字你为什么不呢
number++;
for (int number = 1; number <= entries; number++)
{
}
number++;
对于(整数=1;数字条目;
举债;;
对于(int offset=1;offset为什么不呢
number++;
for (int number = 1; number <= entries; number++)
{
}
number++;
对于(整数=1;数字条目;
举债;;
对于(int offset=1;offset,您希望将1添加到循环末尾的数字。
最简单的方法是使用:
number++;
for循环
for (number = 1; number <= entries; number++)
{
}
for(number=1;number您希望将1添加到循环末尾的数字。
最简单的方法是使用:
number++;
for循环
for (number = 1; number <= entries; number++)
{
}
for(number=1;number)但问题是为什么for循环将number变量递增为(entries+1)?感谢hotadvice提供的答案。但问题是为什么for循环将number变量递增为(entries+1)?感谢hotadvice提供的答案。但为什么编译器将number递增为(entries+1)?非常感谢你的回答Alan Stokes。但是为什么编译器会将数字增加(条目+1)?非常感谢你的回答Alan Stokes。感谢'atornblad',这比我写的代码要好得多。感谢你的合作。但是还有一件事,为什么for循环会将'number'变量增加(条目+1)?从语法上讲,for循环是正确的。那么为什么会发生这种情况呢?是的,但是for循环为每个循环将number
变量设置为1
,然后为每个循环增加number
变量五次。而不是在循环中编写number++;
而不是整个循环内部for循环。谢谢atornblad的建议,我现在明白了。谢谢。谢谢“atornblad”,这比我写的代码要好得多。谢谢你的合作。但是还有一件事,为什么for循环会将“number”变量增加(条目+1)?从语法上讲,for循环是正确的。那么为什么会发生这种情况呢?是的,但是for循环为每个循环将number
变量设置为1
,然后为每个循环增加number
变量五次。而不是在循环中编写number++;
而不是整个循环内部for循环。感谢atornblad的建议,我现在明白了。谢谢。我不明白为什么编译器将“number”变量递增(entries+1).你能解释一下吗?你用一个for
循环,将number
初始化为一。然后,你用numberThanks Abrixas2测试它作为你的答案。我不明白为什么编译器将'number'变量递增(条目+1)。您可以解释一下吗?您使用for
循环,将编号
初始化为一。然后,使用numb测试它