Удаление значения в массиве в C

Эта программа ищет и удаляет введенное значение, она состоит из двух шагов:
  1. Просмотреть список  до тех пор, пока поиск не будет завершен  и запомнить подсказку  в переменной k.
  2. Удалите значение в k.
#включать< stdio.h>
#включать< stdlib.h>

int  и,к;
struct
{
              int  l;
              int  т[50];
}tab;

void  sup(int  t[20],int  k)
{
          for(i=k; Я< таб.л; i++)
          t[i]=t[i+1];
        таб.л--;
}

main()
{       
            //Изменить  в  Цвет  От  Интерфейс  ru  blue
            system("color 9e");
            int  долина;
            printf("укажите размер таблицы ");
            do
          scanf("%d",& таб.л);
            //la  Размер  из  Таблица  Не надо должен  Не  Превышать  50
            while((tab.l>=50)||(таб.л<=0));
            //заполнить  в  Таблица  с  в  values
            for(i=0; Я< таб.л; i++)
          {
                                                          printf("T[%d]=",i);
                                                          scanf("%d",& tab.t[i]);
            }
            //display  d array
          printf("Табличный дисплей \n");
            for(i=0; Я< таб.л; i++)
          printf("\t\tT[%d]=%d\n",i,tab.t[i]);
         
            printf("Дайте значение  Стихия  удалить ");
          scanf("%d",& вал);
            //Поиск  в  Значение  в  в  Таблица  и  Удалить  la
            for(k=0; к< таб.л; k++)
            if(tab.t[k]==val)
                sup(tab.t,k);
         
          puts("");
            //Дисплей  после  deletion
          printf("Просмотр новой таблицы \n");
            for(i=0; Я< таб.л; i++)
          printf("\t\tT[%d]=%d\n",i,tab.t[i]);
         
            system("pause");
            return  0;
}