这段代码有什么问题,我不能在数组中插入超过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;
}
答案 0 :(得分:0)
必须事先知道数组的大小。在我的情况下,大小是100(int a [100];),或者会有溢出。