gpt4 book ai didi

c++ - 插入到数组的所需元素中,并在 C++ 中将所有其他元素推到一个位置

转载 作者:行者123 更新时间:2023-11-28 01:05:25 25 4
gpt4 key购买 nike

我正在为家庭作业处理的一个小函数有一些问题。

我的静态数组大小为 20 (shelfSize),但是,我最多只需要使用 10 个元素。所以我不必担心越界等问题(整个 20 数组都初始化为 0)。

我要做的是将一个整数 booknum 插入到它作为输入接收的数组的元素中。

这是我目前的逻辑:

void insert_at(int booknum, int element){
for(int i=element+1; i < shelfSize; i++)
bookshelf[i+1]=bookshelf[i]
bookshelf[element]=booknum;
}

假设我有这个数组:

[5,4,3,1,7]

我想在元素 1 处插入一个 8 并将数组变为:

[5,8,4,3,1,7]

从技术上讲,最后一个元素 7 之后的所有内容都是 0,但是,我有一个单独的打印函数,它只打印特定元素。

无论我拿笔和纸多少次手动写出我的逻辑,我都无法让它工作。

如有任何帮助,我们将不胜感激。

最佳答案

你应该从数组的末尾开始,这应该适合你:

void insert_at(int booknum, int element)
{
for (int i = shelfsize-1;i>element;i--)
bookshelf[i] = bookshelf[i-1];
bookshelf[element] = booknum;
}

我还建议您习惯于处理非法值,例如,如果用户输入 21 怎么办?

优化后的代码是:

bool insert_at(int booknum, int element)
{
if (element>=shelfsize-1)
return false;
for (int i = shelfsize-2;i>element;i--)
bookshelf[i] = bookshelf[i-1];
bookshelf[element] = booknum;
return true;
}

关于c++ - 插入到数组的所需元素中,并在 C++ 中将所有其他元素推到一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6448638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com