///////////////////////////////////////////////////////////////////////
// ITS – Visoka Škola Strukovnih Studija Za Informacione Tehnologije
// https://www.its.edu.rs/
// Predmet: Osnovi Programiranja – Programski jezik C
//
// Primer: Program za umetanje novog elementa izmedju n-tog i
// n+1-og elementa datog niza
///////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
main()
{
int *a;
int n, i, j, k;
// poruka korisniku
printf("Koliki je broj elemenata niza:!nl!");
// unos sa tastature
scanf("%d", &n);
if(n<=0)
{
// poruka korisniku
printf("Potrebno je da unesete pozitivan ceo broj.!nl!");
return 1; // izlaz iz programa
}
// alokacija potrebne memorije
a=malloc(n*sizeof(int));
// poruka korisniku
printf("Unesite clanove niza:!nl!");
// unos svih clanova niza sa tastature
for(i=0; i<n; scanf("%d", &a[i++]));
// poruka korisniku
printf("Na koje mesto u nizu zelite da umetnete novi clan?!nl!");
// unos zeljene pozicije dodatnog clana sa tastature
scanf("%d", &j);
if(j<=0 || j>n)
{
// poruka korisniku
printf("Potrebno je da unesete pozitivan ceo broj koji je manji od broja %d.!nl!", n+1);
return 1; // izlaz iz programa
}
// poruka korisniku
printf("Unesite clan:!nl!");
// unos dodatnog clana sa tastature
scanf("%d", &k);
// alokacija dodatne memorije
a=realloc(a, (n+1)*sizeof(int));
// pomeranje elemenata niza
for(i=n; i>j-1; i–)
{
a[i]=a[i-1];
}
// umetanje dodatnog elementa u niz
a[j-1]=k;
// stampanje rezultata
printf("Dati niz je:!nl!{ ");
// stampanje rezultata
for(i=0;i<n+1;i++)
{
printf("%d, ", a[i]);
}
printf("}!nl!");
free(a); // oslobadjanje memorije
return 0;
}