C++ 填充数组时遇到问题
C++ Having an issue with filling an array
我的C++代码遇到问题,涉及从用户接收输入并根据该输入填充数组。对于我的函数 fillArray((,我需要一种方法来读取一行中的所有输入,并用这些输入填充数组,直到用户在末尾输入 -1,而不是正整数,或者超过 20 个元素的阈值。
例如,如果我输入1 2 3 4 5 6 -1
一行,我希望 displayArray(( 函数输出1 2 3 4 5 6
,或者如果我写1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
,我希望 displayArray(( 输出1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
。
似乎每当我在最后输入 -1 时,displayArray(( 都会输出类似的东西1 2 3 4 5 6 94837
或一些任意大的数字。如果有人可以帮助我解决这个问题,我将不胜感激,这是我的代码:
#include <iostream>
using namespace std;
const int CAPACITY = 20;
void displayArray(int array[], int numElements)
{
for (int i = 0; i < numElements; i++)
cout << array[i] << " ";
cout << endl;
}
void fillArray(int array[], int& numElements)
{
int arrayPosition = 0;
int testArrayPosition = 0;
int testArray[CAPACITY];
bool continueReading = true;
cout << "Enter a list of up to 20 integers or -1 to end the list";
do
{
cin >> valueEntered;
if (valueEntered == -1)
{
continueReading = false;
} else if (valueEntered != -1) {
array[arrayPosition] = valueEntered;
arrayPosition++;
}
} while ((continueReading==true) || (arrayPosition >= CAPACITY));
numElements = (arrayPosition+1);
}
int main()
{
int array[CAPACITY];
int numArrayElements = 0;
fillArray(array, numArrayElements);
displayArray(array, numArrayElements);
cout << "NumArrayElements: " << numArrayElements << endl;
}
您发布的代码无法编译。您在多个地方引用变量valueEntered
,但从未声明过它。
此外,以下构造没有意义:
if (valueEntered == -1)
{
[...]
}
else if (valueEntered != -1)
{
[...]
由于第二个 if 语句的条件表达式是第一个语句的条件表达式的精确否定,因此第二个 if 语句是多余的,可以删除,如下所示:
if (valueEntered == -1)
{
[...]
}
else
{
[...]
但是,由于您在问题中指出,除了正整数(不仅仅是 -1(之外的任何内容都会导致程序结束,因此您需要将程序的该部分更改为以下内容:
if (valueEntered <= 0)
{
continueReading = false;
}
else
{
array[arrayPosition] = valueEntered;
arrayPosition++;
}
另外,正如其他人在评论部分已经说过的那样,该行
while ((continueReading==true) || (arrayPosition >= CAPACITY));
应改为
while ( continueReading && arrayPosition < CAPACITY )
和线
numElements = (arrayPosition+1);
应改为
numElements = arrayPosition;
- 编译包含字符串的代码时遇到问题
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 从其他类访问类时遇到问题
- 使用静态成员声明类时遇到问题
- C++ 填充数组时遇到问题
- 在将字符串放入字符串向量时遇到问题?
- 余数除法和不允许除以零 (c++) 时遇到问题
- 我在C++中使用 getline() 函数时遇到问题
- C++线程安全:如果只有一个线程可以写入非原子变量,但多个线程从中读取. 会遇到问题吗?
- 在我的四叉树实现中遇到问题
- 在 c++ 中循环遍历数组时遇到问题
- 使用 MinGW 在 Windows 上构建 GLEW 时遇到问题
- 编译 Cilk Plus 程序时遇到问题
- 存储另一个函数返回的布尔数组时遇到问题
- 我在 OpenGL 中显示图像时遇到问题
- 我在解决此错误时遇到问题.我正在努力在主函数中传递数组
- 在 for 循环中更新两个变量时遇到问题C++
- 为什么我的程序在打开网络设备时遇到问题
- 在 Tensorflow C++ 中使用 FIFOQueue 时遇到问题
- 为什么我在虚幻引擎中的多态性和接口方面遇到问题?