For循环不提供正确的整数?语法错误吗?



这个问题的提示是:

首先,读入变量inCount的输入值。然后,从输入中读取inCount整数,并在字符串&;number-&;后的换行符上输出每个整数。

我使用的代码是
for (int inCount = 0; inCount <= 90; inCount++) {
cin >> inCount;
cout << "number-" << inCount << endl;
}

程序用几组数字测试这段代码,看看代码是否正常工作,是否意外地出现IL或其他东西,但为了节省空间,我只分享第一个:

我输出:

number-5
number-30
number-85
number-90

正确输出:

number-30
number-85
number-90
number-65
number-70
谁能告诉我我做错了什么?谢谢。

我想他们是在描述类似这样的东西

int count = 0;
std::cin >> count;
for (int i = 0; i < count; ++i)
{
int value = 0;
std::cin >> value;
std::cout << "number-" << value << std::endl;
}

换句话说,count表示要读入多少个值,然后循环多次并写出每次迭代提供的值。

下面是使用while循环的工作示例:


#include <iostream>
using namespace std;
int main()
{
std::cout<<"Hello World"<<std::endl;
int count = 0;
std::cin >> count;
while(count > 0)
{
int value = 0;
std::cin >> value;
std::cout << "number-" << value << std::endl;

--count;
}
return 0;
}

您使用同一个变量来驱动循环并将用户的输入读入。一旦用户输入数字>= 90,inCount++inCount增加到一个值> 90,导致循环条件中断。

您需要使用单独的变量,例如:

int inCount;
cin >> inCount;
for (int i = 0; i < inCount; ++i) {
int inNumber;
cin >> inNumber;
cout << "number-" << inNumber << endl;
}
#include <iostream>
using namespace std;
int main() {
int inCount;
char wildChar;
cin >> inCount;
wildChar = '*';
for (int i = 0; i < inCount; ++i) {
int inVal = 0;
cin >> inVal;
cout << inVal;
if (i == inCount - 1)
cout << endl;
else 
cout << wildChar;
}
return 0;
}

最新更新