我试图在给定数组中插入一个项目,但在输出中,最后一个元素未被下面给出的代码采用。谁能解释一下为什么会这样??其实我不知道如何提供引用,但我已经尝试过一些东西。关于引用部分,我已经引用了 n 但是当函数被调用时它给出了运行时错误。任何人都可以在这部分帮助我吗?
#include<stdio.h>
int insertAtGP(int *a, int *n, int item, int k)
{
int j;
j = *n - 1;
while(j >= k)
{
a[j+1] = a[j];
j--;
}
a[k] = item;
(*n)++;
}
int main()
{
int i;
int arr[] = {45, 50, 25, 61, 34};
insertAtGP(arr, 5, 30, 3);
for(i = 0; i <= 6; i++)
{
printf(" %d\n ",*(arr+ i));
}
}
最佳答案
您的代码有未定义的行为。
您不能有效地索引超过数组的末尾,并且您的数组只能容纳初始值设定项中存在的元素数,即 5。
关于c - 在数组中的给定位置插入一个元素,最后几个元素没有显示在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24552060/