C++
我正在制作一个程序,要求用户输入一个数字,将该数字设置为第一个数组的大小,然后根据该大小要求用户输入数字。然后它要求另一个数组大小并将其设置为第二个数组大小。如果第二个数组大小大于第一个,我需要将第一个数组复制到第二个数组中,并将 0 添加到未使用的空间。
例如,输出应该如下所示:
Enter first array size: 3
Enter a number: 45
Enter a number: 54
Enter a number: 65
45 54 65 // First array printed out
Enter second array size: 10
45 54 65 0 0 0 0 0 0 0 // Second array printed out
如果第二个数组更大,我需要帮助将 0 添加到未使用的空间。
另外,我不确定我复制数组的方式是否是最好的方法。
代码片段:
int *secondArray = new int[secondSize]; // Create array
for(int j = 0; j < secondSize; ++j)
{
secondArray[j] = firstArray[j]; // Set second array equal to first array
if (secondSize > firstSize)
{
// ?
}
}
最佳答案
就这么简单(但请注意 j
替换了您代码中的 secondSize
)--
if (j >= firstSize)
{
secondArray[j] = 0;
}
编辑:请参阅下面@Fred Larson 关于避免冗余分配的评论。这是活泼的版本:
secondArray[j] = (j >= firstSize) ? 0 : firstArray[j];
关于c++ - 如何将数组复制到更大的数组并将零添加到未使用的空间? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24315097/