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}