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]
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