阵列操作在插入后和执行一个操作循环退出后面临阵列大小变化的问题


***头文件***请帮助我查找为什么我的代码在指令之前退出的错误

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

显示

为什么在遍历数组元素时数组元素的数量没有改变?所有初始元素的数量都只打印

int display_array(int arr[], int n)
{
int i;
for (i = 0; i < n; i++)
{
printf("arr[%d] = %dn", i, arr[i]);
}
return 0;
}

插入

int insert_position(int arr[], int n)
{
int i = 0, pos, num;
printf("Enter the number to be inserted:n");
scanf("%d", &num);
printf("enter the pposition at which the number is to be inserted:n");
scanf("%d", &pos);
for (i = n - 1; i >= pos; i++)
{
arr[i + 1] = arr[i];
}
arr[pos] = num;
n = n + 1;
return 0;
}

删除

int delete_position(int arr[], int n)
{
int i = 0, pos;
printf("Enter the position from which the number has to be deleted:n");
scanf("%d", &pos);

for (i = pos; i < n - 1; i++)
{
arr[i] = arr[i + 1];
}
n = n - 1;
return 0;
}

驱动程序

我认为您将这些函数中的这些参数作为按值传递,而不是按引用传递。这就是为什么每次调用初始值时都会打印它们的原因。您可以使用指针,也可以使用全局变量来获得所需的结果。

最新更新