已知一个有序序列,输入一个数字,从序列中删除这个数字。
#include<stdio.h>
#define SIZE 10
int main()
{
void printArray(int array[],int length);
int array[SIZE]={10,12,13,14,14,14,20,59,134,200};
int value,valueAmount;
int i,j;
int index;
int flag = 2;
printf("删除前的数组:");
printArray(array,SIZE);
printf("请输入要删除的数字:");
scanf("%d",&value);
if(sizeof(array)/sizeof(int)<=0)
flag = 0;
else
{
i=0;
valueAmount=0;
for(i=0;i<=SIZE-valueAmount;i++)
{
if(array[i]==value)
{
index=i;
valueAmount++;
}
}
index=index-valueAmount+1;
}
if(valueAmount==0)
flag=1;
else
{
flag=2;
for(i=index;i<SIZE;i++)
{
array[i]=array[i+valueAmount];
}
//数组元素前移
//填代码
}
switch (flag){
case 0:
printf("表为空,不能正确删除元素。");
break;
case 1:
printf("输入的数不在数组中,不能删除。");
break;
case 2:
printf("删除%d元素后的结果是:",value);
printArray(array,SIZE-valueAmount);
}
return 0;
}
void printArray(int array[],int length)
{
int i;
for(i=0;i<length;i++)
printf("%d ",array[i]) ;
printf("\n") ;
}