/***************************************************************** * Ovo delo zaštićeno je licencom Creative Commons CC BY-NC-ND 4.0 * (Attribution-NonCommercial-NoDerivatives 4.0 International License). * Za detalje pogledati LICENSE.TXT * Autori: Milena Vujosevic Janicic, Jelena Graovac, Nina Radojicic, * Ana Spasic, Mirko Spasic, Andjelka Zecevic ******************************************************************/ #include #include #define MAX 100 /* Funkcija povecava za jedan sve elemente u prvoj polovini niza a smanjuje za jedan sve elemente u drugoj polovini niza. Ukoliko niz ima neparan broj elemenata, srednji element ostaje nepromenjen */ void povecaj_smanji(int *a, int n) { int *prvi = a; int *poslednji = a + n - 1; while (prvi < poslednji) { /* Uvecava se element na koji pokazuje pokazivac prvi */ (*prvi)++; /* Pokazivac prvi se pomera na sledeci element */ prvi++; /* Smanjuje se vrednost elementa na koji pokazuje pokazivac poslednji */ (*poslednji)--; /* Pokazivac poslednji se pomera na prethodni element */ poslednji--; } /****************************************************************** Drugi nacin: while (prvi < poslednji) { (*prvi++)++; (*poslednji--)--; } ******************************************************************/ } int main() { int a[MAX]; int n; int *p; printf("Unesite dimenziju niza: "); scanf("%d", &n); /* Proverava se da li je doslo do prekoracenja ogranicenja dimenzije */ if (n <= 0 || n > MAX) { fprintf(stderr, "Greska: Neodgovarajuca dimenzija niza.\n"); exit(EXIT_FAILURE); } printf("Unesite elemente niza:\n"); for (p = a; p - a < n; p++) scanf("%d", p); povecaj_smanji(a, n); printf("Transformisan niz je:\n"); for (p = a; p - a < n; p++) printf("%d ", *p); printf("\n"); exit(EXIT_SUCCESS); }