Otadžbina

Autor zadatka: Sanja Špica <sanjaspica@uns.ac.rs>

Dat je niz A od maksimalno 10 celobrojnih elemenata. Učitati n elemenata a zatim:

  1. ispisati sadržaj celokupnog niza

  2. odrediti i ispisati aritmetičku sredinu elemenata niza koji su na neparnim indeksima

Ograničenja:

  • sprovesti zaštitu unosa nad podatkom n

  • ispisati rezultat zaokružen na 1 decimalu

Dat je niz karaktera B od maksimalno 120 karaktera u koji treba učitati sledeći citat Branislava Nušića:

"Otadzbina nije predmet ogranicen, oivicen, utelovljen. Otadzbina je misao, otadzbina je vera, a misao i vera ne umiru."
  1. Prebrojati karaktere datog citata.

  2. Prebrojati koliko puta se određen karakter pojavljuje u datom citatu.

Primer poziva:

./a.out

Za sledeće ulazne podatke:

Unesite broj elemenata niza (max 10): 5
Unesite A[0]: 6
Unesite A[1]: 2
Unesite A[2]: 8
Unesite A[3]: 9
Unesite A[4]: 3

Unesi karakter: O

i očekivani izlaz je u sledećem formatu:

A[0] = 6
A[1] = 2
A[2] = 8
A[3] = 9
A[4] = 3

avg = 5.5

Broj karaktera datog citata je 118.

Karakter O se u datom citatu pojavljuje 2 puta.

Primer rešenja

 1#include <stdio.h>
 2#include <string.h>
 3
 4#define MAX_SIZE 10
 5#define MAX_STRING 151
 6
 7
 8int main() {
 9    int A[MAX_SIZE];
10    int n;
11
12    do {
13        printf("Unesite broj elemenata niza (max %d): ", MAX_SIZE);
14        scanf("%d", &n);
15    } while(n<2 || n > MAX_SIZE);
16
17    int i;
18    for(i=0; i<n; i++) {
19        printf("Unesite A[%d]: ", i);
20        scanf("%d", &A[i]);
21    }
22
23    printf("\n");
24    for(i=0; i<n; i++) {
25        printf("A[%d] = %d\n", i, A[i]);
26    }
27
28    double sum = 0;
29    int count = 0;
30    for(i=1; i<n; i+=2) {
31        sum += A[i];
32        count++;
33    }
34
35    double avg = sum / count;
36    printf("\n avg = %.1lf\n", avg);
37
38    char B[MAX_STRING];
39        
40    printf("Unesite string: ");
41    __fpurge(stdin);
42    gets(B);
43
44    int br=strlen(B);
45
46    printf("Broj karaktera datog citata je %d\n", br);
47
48
49    char c;
50    printf("Unesi karakter: ");
51    __fpurge(stdin);
52    scanf("%c",&c);
53
54    int brojac;
55
56    for(i = 0; i < strlen(B); i++ )
57          if(B[i] == c) {
58        brojac++;
59    }
60    printf("Karakter %c se u datom citatu pojavljuje %d puta\n", c, brojac);
61
62    return 0;
63}