编写一个函数完成下面的功能:删除一维整型数组a中值大于x小于y的所有元素。要求:数组a(10个元素)的值、x和y在main函数中输入。为什么后面还会有数字补齐十个数?
因为数组的长度自声明后是不会变的。
你可以在del()函数返回一个删除元素后的,有效的数组长度。
再最后遍历的时候,遍历这个新的长度就好。
void del(int a[], int x, int y)
{
int i = 0;
for (i = 0; i < 10; i++)
{
if (a[i]<x || a[i]>y)
{
//超出范围就设置为0
a[i] = 0;
}
}
}
int main()
{
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
int x = 0;
int y = 0;
scanf("%d %d", &x, &y);
del(a, x, y);
int i = 0;
for(i = 0; i < 10; i++)
{
if (a[i] != 0)//我们就不打印为0的就行
printf("%4d", a[i]);
}
return 0;
}