Dvojke¶
Autor zadatka: Relja Mihić <relja.mihic@uns.ac.rs>
Dat je niz celobrojnih vrednosti od maksimalno 32 elementa. Uneti n vrednosti i ispisati:
Sve elemente sa parnim indeksima
Sve elemente sa parnim vrednostima
Sve elemente čiji indeks je stepen dvojke
Sve elemente čija apsolutna vrednost je stepen dvojke
Za stepene dvojke uzeti brojeve:
\[2^n = {1, 2, 4, 8, 16, ...}, n \geq 0\]
Primer rada programa:
Unesite velicinu niza: 5
1. element niza je: 1
2. element niza je: 4
3. element niza je: 5
4. element niza je: -8
5. element niza je: 10
Elementi sa parnim brojem indeksa su: 1 5 10
Elementi cija apsolutna vrednost je paran broj su: 4 -8 10
Elementi ciji indeksi su stepen dvojke: 4 5 10
Elementi cija apsolutna vrednost je stepen dvojke: 1 4 -8
Primer rešenja¶
1#include <stdio.h>
2#include <math.h>
3
4#define MAX_LENGTH 32
5
6int main() {
7 int niz[MAX_LENGTH];
8 int n, i;
9
10 do
11 {
12 printf("Unesite velicinu niza: ");
13 scanf("%d", &n);
14 } while(n <= 0 || n > MAX_LENGTH);
15
16 for(i = 0; i < n; i++)
17 {
18 printf("%d. element niza je: ", i + 1);
19 scanf("%d", &niz[i]);
20 }
21
22 printf("Elementi sa parnim brojem indeksa su: ");
23 for(i = 0; i < n; i += 2)
24 {
25 printf("%d ", niz[i]);
26 }
27 printf("\n");
28
29 printf("Elementi cija apsolutna vrednost je paran broj su: ");
30 for(i = 0; i < n; i++)
31 {
32 if (niz[i] % 2 == 0)
33 {
34 printf("%d ", niz[i]);
35 }
36 }
37 printf("\n");
38
39 printf("Elementi ciji indeksi su stepen dvojke: ");
40 for(i = 1; i < n; i *= 2)
41 {
42 printf("%d ", niz[i]);
43 }
44 printf("\n");
45
46 printf("Elementi cija apsolutna vrednost je stepen dvojke: ");
47 int temp, stepen;
48 for(i = 0; i < n; i++)
49 {
50 stepen = 1;
51 temp = fabs(niz[i]);
52 while(temp > 2)
53 {
54 if (temp % 2 != 0)
55 {
56 stepen = 0;
57 break;
58 }
59
60 temp /= 2;
61 }
62 if (stepen && (niz[i] != 0))
63 {
64 printf("%d ", niz[i]);
65 }
66 }
67 printf("\n");
68
69 return 0;
70}