Insert element in ordered vector C

0

I would be looking for a function that inserts a number in an array already sorted in ascending order. For example, if I have an array of 5 pre-initialized elements with: 1,3,5,7,9

And I want to insert a 4, should be 1,3,4,5,7

Removing 9. Any solution?

    
asked by NxLinS 06.09.2018 в 19:16
source

1 answer

0

I've done it this way, I'm sure I will not optimize it, but this is what I achieved.

#include <stdio.h>
#include <stdlib.h>
void ejercicio23(int tam, int * s, int bus);
int main()
{
    int vector[]={ 1, 5, 7, 9, 11},
    bus=2,
    i,
    tam=sizeof(vector)/sizeof(int);
ejercicio23(tam,vector,bus);
for(i=0;i<5;i++)
    printf("%d\t",vector[i]);
return(0);
}
void ejercicio23(int tam, int * s, int bus)
{
int i,
    aux,
    auxx,
    salir=0;
while((*s) && salir==0)
{

   if(bus<(*s))
    {
        aux=(*s);
        *s=bus;
        s++;
        while(*s && tam)
        {
            auxx=aux+(*s);
            *s=aux;
            aux=auxx-(*s);
            tam--;
            s++;
        }
        salir=1;
    }
    tam--;
    s++;
    }
}
    
answered by 13.09.2018 в 07:12