所以我把这个程序编写成代码来读取多个整数,然后它应该反向读取数组.然而,它只是读回所有0
while (true)
{
cin >> input;
if (input == -1 && gotStuff == false) {return 0;}
else if (input == -1 && gotStuff == true) {break;}
else
{
inputData[pos1] = input;
pos1 ++;
gotStuff = true;
}
}
for (int i = pos1; i >= 0; i--)
{
outputData[pos2] = inputData[pos1];
pos2 ++;
cout << outputData[pos1] << " ";
}
Run Code Online (Sandbox Code Playgroud)
为什么这个读数全部为0?
你这里有一个明显的问题
for (int i = pos1; i >= 0; i--)
{
outputData[pos2] = inputData[pos1];
pos2 ++;
cout << outputData[pos1] << " ";
}
Run Code Online (Sandbox Code Playgroud)
因为你总是试图打印,outputData[pos1]但pos1在循环中永远不会改变.因此,您始终输出相同的字符.类似地,您总是将相同的字符复制inputData到outputData数组中,因此当循环退出时,outputData将在不同的索引处包含相同的字符.
你可能会有更好的运气,以下循环至少复制和打印正确的字符
pos2 = 0;
for (int i = pos1-1; i >= 0; i--)
{
outputData[pos2] = inputData[i];
cout << outputData[pos2] << " ";
pos2++;
}
Run Code Online (Sandbox Code Playgroud)
你可能有其他问题与您的代码也因为你不告诉我们在什么值的问题pos1,并pos2已与初始化.