顺序表查找删除

已知一个有序序列,输入一个数字,从序列中删除这个数字。

#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") ;
}

  

posted @ 2017-11-13 19:26  ss14457  阅读(155)  评论(0编辑  收藏  举报