Površina kruga

Autor zadatka: Andrea Sabo Cibolja <andrea_saboc@uns.ac.rs>

Unosom sa tastature zadat je niz M od maksimalno 25 realnih elemenata. Učitati n elemenata u niz M, koji predstavlja poluprečnike kružnica (voditi računa da su poluprečnici pozitivni brojevi).

  1. Formirati niz K čiji elementi predstavljaju površine krugova sa prečnicima iz niza M

  2. Ispisati površinu najvećeg kruga i indeks na kom se ta površina kruga nalazi u nizu K. U slučaju da se krug nalazi na parnom indeksu ispisati površinu zaokruženu na dve decimale, a u slučaju da se nalazi na neparnom indeksu ispisati površinu zaokruženu na tri decimale.

  3. Preko konzole korisnik unosi realan pozitivan broj a. Prebrojati sve poluprečnike iz niza M koji su veći od broja a, a zatim ispisati broj takvih poluprečnika.

Na izlazu je neophodno ispisati nizove M i K. Ispis članova niza zaokružiti na 2 decimale.

Formula za računanje površine kruga: \(P = r^{2}\cdot\pi\) (\(\pi\) posmatrati kao 3,14)

Primer rada programa:

Unesite broj elemenata niza M (broj elemenata ne sme da prelazi 25): 5

Unesite elemente niza M:
M[0]=2.1
M[1]=5.6
M[2]=5.8
M[3]=5.3
M[4]=9.0
Povrsina najveceg kruga iznosi 254.34, nalazi se na 4 indeksu.
Unesite realan pozitivan broj a:5.7

Broj vecih poluprecnika od 5.7 je 2.

M=[2.10, 5.60, 5.80, 5.30, 9.00]
K=[13.85, 98.47, 105.63, 88.20, 254.34]

Primer rešenja

 1#include <stdio.h>
 2#include <math.h>
 3#define MAX_SIZE 25
 4
 5int main(){
 6
 7    double M[MAX_SIZE], K[MAX_SIZE];
 8    double maxPovrsina, a;
 9    int n, i, maxIndex, brojVecih=0;
10
11    do{
12        printf("Unesite broj elemenata niza M (broj elemenata ne sme da prelazi 25): ");
13        scanf("%d", &n);
14    }while(n<0 || n>MAX_SIZE);
15
16    printf("\nUnesite elemente niza M:\n");
17    for(i=0; i<n; i++){
18    	do{
19    	    printf("M[%d]=",i);
20    	    scanf("%lf", &M[i]);
21    	}while(M[i]<0);
22    }
23
24    for(i=0; i<n; i++){
25    	K[i]=pow(M[i], 2) * 3.14;
26    }
27
28    maxPovrsina = K[0];
29    maxIndex = 0;
30
31    for(i=1; i<n; i++){
32    	if(K[i]>maxPovrsina){
33    		maxPovrsina=K[i];
34    		maxIndex=i;
35        }
36    }
37
38    if(maxIndex%2==0){
39        printf("Povrsina najveceg kruga iznosi %.2lf, nalazi se na %d indeksu.\n", maxPovrsina, maxIndex);}
40    else{
41        printf("Povrsina najveceg kruga iznosi %.3lf, nalazi se na %d indeksu.\n", maxPovrsina, maxIndex);
42    }
43
44    do{
45        printf("Unesite realan pozitivan broj a:");
46        scanf("%lf", &a);
47    }while(a<0);
48
49    for(i=0; i<n; i++){
50    	if(M[i]>a) brojVecih++;
51    }
52
53    printf("\nBroj vecih poluprecnika od %.1lf je %d.\n", a, brojVecih);
54
55    printf("\nM=[");
56    for(i=0; i<n; i++){
57    	if(i>0){
58    		printf(", ");
59    	}
60    	printf("%.2lf", M[i]);
61    }
62    printf("]\n");
63
64    printf("K=[");
65    for(i=0; i<n; i++){
66    	if(i>0){
67    		printf(", ");
68    	}
69    	printf("%.2lf", K[i]);
70    }
71    printf("]\n");
72
73    return 0;
74}