Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 数组操作(插入元素)_C_Arrays - Fatal编程技术网

C 数组操作(插入元素)

C 数组操作(插入元素),c,arrays,C,Arrays,这段代码有什么问题,我不能在数组中插入超过9个元素?这段代码应该允许用户在数组中输入多达100个不同的元素 这里是插入函数 #include <stdio.h> #include <stdlib.h> int y = 0; void insert(int a[]) { printf("enter an element to insert\n"); int p, i, x = 0, z = 0, k = 0; scanf("%i", &x);

这段代码有什么问题,我不能在数组中插入超过9个元素?这段代码应该允许用户在数组中输入多达100个不同的元素

这里是插入函数

#include <stdio.h>
#include <stdlib.h>
int y = 0;
void insert(int a[])
{
    printf("enter an element to insert\n");
    int p, i, x = 0, z = 0, k = 0;
    scanf("%i", &x);
    if (y < 100)
    {
        if (y != 0)
        {
            for (i = 0; i < y; i++)
            {
                if (a[i] == x)
                {
                    printf("Element %d already exists, No change", x);
                    z = 1;
                    break;
                }
            }
            if (z == 0)
            {
                for (i = 0; i < y; i++)
                {
                    if (x < a[i])
                    {
                        p = i;
                        y++;
                        k = 1;
                        break;
                    }
                }
                if (z == 0 && k == 0)
                {
                    y++;
                    p = y - 1;
                    a[p] = x;
                }

                if (z == 0 && k == 1)
                {
                    for (i = (y - 1); i > p; i--)
                    {
                        a[i] = a[i - 1];
                    }
                    a[p] = x;
                    printf("\nElement %d is inserted   \n y is %d", x, y);
                }
            }
        }
        else
        {
            y++;
            a[y - 1] = x;
            printf("\nElement %d is inserted", x);
        }
    }
    else
        printf("array is full");
}
  int main()
{
   int x=0;
   int a[y];
   while(x!=2)
   {
      printf("\nEnter your choice: 1) insert 2)exit \n");
      scanf("%d",&x);
      switch (x)
      {
         case 1:
         insert(a);
         break;
         case 2:
         printf("Goodbye");
         break;
      }
   }
   return 0;
}
#包括
#包括
int y=0;
无效插入(int a[])
{
printf(“输入要插入的元素\n”);
int p,i,x=0,z=0,k=0;
scanf(“%i”和“&x”);
如果(y<100)
{
如果(y!=0)
{
对于(i=0;ip;i--)
{
a[i]=a[i-1];
}
a[p]=x;
printf(“\n插入了元素%d\n y是%d”,x,y);
}
}
}
其他的
{
y++;
a[y-1]=x;
printf(“\n插入元素%d”,x);
}
}
其他的
printf(“数组已满”);
}
int main()
{
int x=0;
int a[y];
while(x!=2)
{
printf(“\n输入您的选择:1)插入2)退出\n”);
scanf(“%d”和&x);
开关(x)
{
案例1:
插入(a);
打破
案例2:
printf(“再见”);
打破
}
}
返回0;
}

必须事先知道阵列的大小。在我的例子中,大小是100(int a[100];),否则将出现溢出。

必须事先知道数组的大小。在我的情况下,大小是100(int a[100];),否则将出现溢出。

请-将代码正确缩进。如果缩进不正确,则很难阅读和理解。准备好要发布的代码,确保其中没有选项卡。复制并粘贴到编辑窗口中,忽略预览,并确保它看起来正确(您没有任何选项卡,是吗?)。选择代码,并使用编辑框上方的
{}
按钮将其缩进。现在查看预览,确保它看起来仍然正常。如果你没有标签,它应该是好的。如果你没有猜到的话,制表符真的会把事情搞糟。你通常应该用换行符来完成消息,而不是(或者)用换行符开始。在许多类型的计算机上,在生成换行符之前不会显示输出。请提供。显示调用方代码。请使用有意义的变量名。不可能理解此代码中的变量
k
z
表示什么
inta[0]:数组不会在C中自动扩展。请-将代码正确缩进后发布。如果缩进不正确,则很难阅读和理解。准备好要发布的代码,确保其中没有选项卡。复制并粘贴到编辑窗口中,忽略预览,并确保它看起来正确(您没有任何选项卡,是吗?)。选择代码,并使用编辑框上方的
{}
按钮将其缩进。现在查看预览,确保它看起来仍然正常。如果你没有标签,它应该是好的。如果你没有猜到的话,制表符真的会把事情搞糟。你通常应该用换行符来完成消息,而不是(或者)用换行符开始。在许多类型的计算机上,在生成换行符之前不会显示输出。请提供。显示调用方代码。请使用有意义的变量名。不可能理解此代码中的变量
k
z
表示什么
inta[0]:数组不会在C中自动扩展。