Zadatak „Brojevne sredine niza”

Section author: Petar Marić <petarmaric@uns.ac.rs>

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

  • ispisati sadržaj celokupnog niza, od poslednjeg elementa ka početnom
  • odrediti i ispisati kvadratnu sredinu celokupnog niza (KS)
  • odrediti i ispisati aritmetičku sredinu elemenata niza koji su na neparnim indeksima (AS)

Ograničenja:

  • sprovesti zaštitu unosa nad podatkom n
  • sve realne promenljive trebaju biti tipa double
  • sve realne brojeve ispisivati zaokružene na 2 decimale

Za sledeće ulazne podatke:

n = 5
A = {4, 2, 6, -7, 1}

očekivani izlaz je u sledećem formatu:

A[4] = 1
A[3] = -7
A[2] = 6
A[1] = 2
A[0] = 4

KS = 4.60
AS = -2.50

Korisne matematičke formule:

  • kvadratna sredina niza \(KS = \sqrt{ \frac{1}{n} \sum {x_i}^2 }\)
  • aritmetička sredina niza \(AS = \frac{1}{n} \sum {x_i}\)

Primer rešenja

#include <stdio.h>
#include <math.h>

#define MAX_SIZE 10

int main() {
    int A[MAX_SIZE];
    int n;

    do {
        printf("Unesite broj elemenata niza (max %d): ", MAX_SIZE);
        scanf("%d", &n);
    } while(n<2 || n > MAX_SIZE);

    int i;
    for(i=0; i<n; i++) {
        printf("Unesite %d. clan niza: ", i+1);
        scanf("%d", &A[i]);
    }

    printf("\n");
    for(i=n-1; i>=0; i--) {
        printf("A[%d] = %d\n", i, A[i]);
    }

    double KS_sum = 0;
    for(i=0; i<n; i++) {
        KS_sum += pow(A[i], 2);
    }
    double KS = sqrt(KS_sum / n);
    printf("\nKS = %.2lf\n", KS);

    double AS_sum = 0;
    int AS_count = 0;
    for(i=1; i<n; i+=2) {
        AS_sum += A[i];
        AS_count++;
    }
    double AS = AS_sum / AS_count;
    printf("AS = %.2lf\n", AS);

    return 0;
}