Manji od indeksa

Autor zadatka: Aleksandra Stamenković <stamenkovic@uns.ac.rs>

Dat je niz A od maksimalno 20 celobrojnih elemenata.

  1. Učitati n elemenata i ispisati sve one članove kojima je vrednost manja od njihovog indeksa u nizu

  2. Ispisati da li ima više parnih elemenata, neparnih elemenata ili ih ima jednak broj

  3. Prebrojati koliko ima negativnih brojeva u nizu u intervalu od indeksa i1 do indeksa i2 (uključujući i i1 i i2).

Napomene:

  • Sprovesti zaštitu unosa nad promenljivom n

  • Podrazumevati da će korisnik uneti validne vrednosti za i1 i i2

Primer rada programa:

Ucitati broj elemenata niza: 8

Unesite elemente niza:

Unesite 1. element niza: -2
Unesite 2. element niza: 4
Unesite 3. element niza: 2
Unesite 4. element niza: 7
Unesite 5. element niza: -4
Unesite 6. element niza: -5
Unesite 7. element niza: 8
Unesite 8. element niza: 6

Elementi kojima je vrednost manja od njihovog indeksa u nizu: -2 -4 -5 6 

Vise ima parnih elemenata.

Unesite broj I1: 2
Unesite broj I2: 5

Broj negativnih elemenata u intervalu od indeksa 2 do 5 je 2.

Primer rešenja

 1#include <stdio.h>
 2#include <stdlib.h>
 3
 4#define MAX_ELEMENATA 20
 5
 6int main()
 7{
 8    int A[MAX_ELEMENATA];
 9    int n, i, brojParnih = 0, brojNeparnih = 0, i1, i2, brojNegativnih = 0;
10
11    do
12    {
13        printf("Ucitati broj elemenata niza: ");
14        scanf("%d", &n);
15    } while((n < 2) || (n > MAX_ELEMENATA)); // n >= 2 && n <= MAX_ELEMENATA
16
17    printf("\nUnesite elemente niza:\n\n");
18    for(i = 0; i < n; i++)
19    {
20        printf("Unesite %d. element niza: ", i + 1);
21        scanf("%d", &A[i]);
22    }
23
24    printf("\nElementi kojima je vrednost manja od njihovog indeksa u nizu: ");
25    for(i = 0; i < n; i++)
26    {
27        if(A[i] < i)
28            printf("%d ", A[i]);
29
30        if(A[i] % 2 == 0)
31            brojParnih++;
32        else
33            brojNeparnih++;
34    }
35
36    if(brojParnih > brojNeparnih)
37        printf("\n\nVise ima parnih elemenata.\n");
38    else if(brojNeparnih > brojParnih)
39        printf("\n\nVise ima neparnih elemenata.\n");
40    else
41        printf("\n\nIma jednako parnih i neparnih elemenata.\n");
42
43    printf("\nUnesite broj I1: ");
44    scanf("%d", &i1);
45
46    printf("Unesite broj I2: ");
47    scanf("%d", &i2);
48
49    for(i = i1; i <= i2; i++)
50    {
51        if(A[i] < 0)
52            brojNegativnih++;
53    }
54
55    printf("\nBroj negativnih elemenata u intervalu od indeksa %d do %d je %d.\n", i1, i2, brojNegativnih);
56
57    return 0;
58}