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:
Prosečnu dužinu duži
Formirati novi niz čiji su elementi površine kvadrata sastavljenih od duži iz ulaznog niza
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