Dado un vector de números enteros adicionar un valor 1 por cada tres números

Dado un vector de números enteros adicionar un valor 1 por cada tres números
Sea A=[3,2,5,6,1,7,8] adicionando se tiene A=[3,2,5,1, 6,1,7,1,8]

#include <stdio.h>
#define MAX 100
int a[MAX];
void leer_vector( int a[]){
    int i,n;
    do {
  printf("Ingrese cantidad de elementos menor a 100: ");
  scanf("%d",&n);
 } while( (n<0)||(n>MAX) );
 printf("Ingrese los valores...\n");
 for(i=1;i<=n;i++)
 { printf("A[%d]= ",i);
  scanf("%d",&a[i]);
 }
 a[0]=n;
}
void mostrar_vector( int a[] ){

    int i,n=a[0];
    for(i=1;i<=n;i++)
        printf(" - %d ",a[i]);
}
void insertar( int a[], int i, int e){
 int k,n=a[0];
 if(i>n){
  a[n+1]=e;
  n++;
 }else{
  if(i>0){
   for(k=n;k>=i;k--)
    a[k+1]=a[k];
   a[i]=e;
   n++;
  }
 }
 a[0]=n;
}
void adiciona_ctrese_uno(int a[]){
    int i,n=a[0];
    for(i=4;i<=n;i=i+4){
        insertar(a,i,1);
        n=a[0];
    }
}
int main() {
    printf("\nADICIONA VALORES POR CADA 3 NUMEROS EN UN VECTOR\n");
 leer_vector(a);
 printf("\nVector original: \n");
 mostrar_vector(a);
    adiciona_ctrese_uno(a);
 printf("\nVector con unos adicionados: \n");
 mostrar_vector(a);
 printf("\n");
 return 0;
}

Comentarios