c - C 插入数组指针
问题描述
我正在编写一个 C 程序来将元素插入到带有指针的数组中。在我的 INSERT 方法中,我似乎无法将元素添加到数组中。当我选择选项 4 时,它在数组中显示 0 数字。
我使用的测试用例如下:
- 运行程序
- 选择选项 1
- 输入数组大小
- 输入要添加到数组中的元素。
- 选择选项 4 以显示数组
// Online C compiler to run C program online
#include <stdio.h>
#define MAX 10
void initialize (int *size, int ar[]);
void insert (int max, int *size, int ar[], int num);
void iremove (int *size, int ar[], int num);
void display (int size, int ar[]);
int main ()
{
int option = 0;
int num, ar[MAX], size = 0;
printf ("Please select an option: \n");
printf ("(1) Initialize the array \n");
printf ("(2) Insert an integer \n");
printf ("(3) Remove an integer \n");
printf ("(4) Display the numbers stored in the array \n");
printf ("(5) Quit \n");
do
{
printf ("Enter your choice: \n");
scanf ("%d", &option);
switch (option)
{
case 1:
initialize (&size, ar);
break;
case 2:
printf ("Enter an integer: \n");
scanf ("%d", &num);
insert (MAX, &size, ar, num);
break;
case 3:
break;
case 4:
display(size,ar);
break;
default:
break;
}
}
while (option < 5);
return 0;
}
void display (int size, int ar[])
{
int i;
printf ("The %d numbers in the array: \n", size);
for (i = 0; i < size; i++)
printf ("%d ", ar[i]);
printf ("\n");
}
void initialize (int *size, int ar[])
{
int total, i, num;
printf ("Enter the total number of integers (MAX=%d): \n", MAX);
scanf ("%d", &total);
(*size) = 0;
printf ("Enter the integers: \n");
for (i = 0; i < total; i++)
{
scanf ("%d", &num);
insert (MAX, size, ar, num);
}
}
void insert (int max, int *size, int ar[], int num)
{
if(*size>=MAX)
{
printf("Array full")
}
else
{
ar[*size] = num;
}
}
void iremove (int *size, int ar[], int num)
{
/* Write your code here */
}
解决方案
你忘了增加大小:
void insert (int max, int *size, int ar[], int num)
{
if(*size>=MAX)
{
printf("Array full")
}
else
{
ar[*size] = num;
(*size)++;
}
}
推荐阅读
- cassandra - Cassandra 进程在 ram 使用中增长,并且从未被释放
- python - 使用python将GMT纪元时间转换为原始GMT
- docker - 用旧电脑运行 Docker
- java - POI 复制图像不调整大小
- html - 如何使用 flexbox 使徽标居中?
- intellij-idea - 如何将 EditorConfig 样式应用于所有文件,包括没有扩展名的文件?
- html - 如何在 vim 编辑器中创建自动表(html 标签)?比如:table>tr*10>td*4,而不是在 PhpStorm 中按 tab
- django - Facebook Messenger 中的 X-FRAME 选项
- rest - Wiremocking删除没有发生
- php - 如何使用 PHP 将文本输出缩进到命令行?