我必须编写一个带有6个函数的数组操纵器,这些函数都在main中调用。我编写了大部分函数,但我坚持使用的是用户从菜单中选择在指定索引处添加元素的函数,以及用户选择删除元素的另一个函数。这是我到目前为止对insertElement函数的代码:
int main()
// other cases;
case 5:
cout << "Enter a value to insert: ";
cin >> insert;
cout << "Enter a position to insert the value in: ";
cin >> pos;
pos--;
if (pos < 0 || pos > size)
{
cout << "Invalid Index " << endl;
}
else
{
size = insertValue(arr, value, pos, size);
displayArray(arr, size);
}
break;
int insertValue(int arr[], int value, int pos, int size)
if (size == 10)
cout << "Array full" << endl;
else
{
int i;
for (i = size - 1; i >= pos; --i) {
arr[i + 1] = arr[i];
}
arr[i] = value;
}
cout << endl;
return size;
我认为我添加元素的功能是正确的,但是当我运行数组值为3 4 5,并告诉程序在索引1处添加数字4时,它会打印3 3 4,并且剩下5出阵列。如何让程序打印3 4 4 5? 谢谢你的帮助!
答案 0 :(得分:1)
插入后需要将大小增加1。
int insertValue(int arr[], int value, int pos, int size)
{
if (size == 10)
std::cout << "Array full\n";
else
{
int i;
for (i = size - 1; i >= pos; --i)
{
arr[i + 1] = arr[i];
}
arr[pos] = value;
++size;
}
return size;
}
答案 1 :(得分:0)
尺寸问题看起来需要在插入后增加尺寸。
我认为在案例5中您可能还有另一个问题。您可以查找名为“insert”的变量,但是您将函数传递给名为“value”的变量。我假设'value'是另一种情况的变量,可能会在插入时引发问题。
〜祝你好运