Površina kvadrata

Autor zadatka: Rade Radišić <radisic.rade@uns.ac.rs>

Dat je niz realnih brojeva od maksimalno 30 elemenata. Učitati n pozitivnih elemenata, gde svaka vrednost predstavlja dužinu duži. Za duži iz niza izračunati i ispisati:

  1. Prosečnu dužinu duži

  2. Formirati novi niz čiji su elementi površine kvadrata sastavljenih od duži iz ulaznog niza

  3. Odrediti koliki procenat površine će zauzeti onoliko kvadrata koliko može da stane u površinu najvećeg kvadrata.

Ispise vrednosti zaokružiti na dve decimale.

Za ulazni niz duži [1, 3.5, 2, 7, 0.5, 6], očekivani ispis na stadardnom izlazu je:

Unesite broj elemenata niza: 5
a[0] = 1
a[1] = 3.5
a[2] = 2
a[3] = 7
a[4] = 0.5

Prosecna duzina duzi: 2.80
[1.00, 12.25, 4.00, 49.00, 0.25]
Procenat zauzeca povrsine najveceg kvadrata: 35.71%  

Korisne matematičke formule

Površina kvadrata

\[P = a^2\]

Primer rešenja

 1#include <stdio.h>
 2
 3#define MAX_SIZE 30
 4
 5int main() {
 6    double a[MAX_SIZE];
 7    int i, n;
 8
 9    do {
10        printf("Unesite broj elemenata niza: ");
11        scanf("%d", &n);
12    } while(n <= 0 || n > MAX_SIZE);
13
14    for(i = 0;i < n;i++) {
15        printf("a[%d] = ", i);
16        scanf("%lf", &a[i]);
17    }
18
19    printf("\n");
20
21    double suma = 0, srednja_vrednost;
22
23    for(i = 0;i < n;i++) {
24        suma += a[i];
25    }
26
27    srednja_vrednost = suma / n;
28    printf("Prosecna duzina duzi: %.2lf\n", srednja_vrednost);
29
30    double P[MAX_SIZE];
31
32    for(i = 0;i < n;i++) {
33        P[i] = a[i] * a[i];
34    }
35
36    printf("[");
37    for(i = 0;i < n;i++) {
38        if(i > 0) {
39            printf(", ");
40        }
41        printf("%.2lf", P[i]);
42    }
43    printf("]\n");
44
45    double max_P = P[0], suma_P = 0, procenat_P;
46
47    for(i = 1;i < n;i++) {
48        if(P[i] > max_P) {
49            max_P = P[i];
50        }
51    }
52
53    for(i = 0;i < n;i++) {
54        if(suma_P + P[i] < max_P) {
55            suma_P += P[i];
56        }
57    }
58
59    procenat_P = suma_P / max_P * 100;
60    printf("Procenat zauzeca povrsine najveceg kvadrata: %.2lf%%\n", procenat_P);
61
62    return 0;
63}
64