Ubaci veće od prethodnika¶
Autor zadatka: Andrea Sabo Cibolja <andrea_saboc@uns.ac.rs>
Unosom sa tastature zadat je niz M
od maksimalno 30
celobrojnih elemenata. Učitati n
elemenata u
niz M
.
U niz
A
treba ubaciti sve članove nizaM
, počevši od drugog, a koji su veći od svog prethodnika.Za niz
M
je neophodno izračunati njegovu srednju vrednost.Formirati niz
B
tako da se sastoji od elemenata nizaM
koji su veći od srednje vrednosti nizaM
Na izlazu ispisati nizove A
i B
i srednju vrednost niza M
zaokruženu na 3 decimale.
Primer rada programa:
Unesite broj elemenata niza M (broj elemenata ne sme da prelazi 30): 7
Unesite elemente niza:
M[0]=1
M[1]=2
M[2]=6
M[3]=3
M[4]=6
M[5]=23
M[6]=45
A=[2, 6, 6, 23, 45]
B=[23, 45]
Srednja vrednost niza M je: 12.286
Primer rešenja¶
1#include <stdio.h>
2#define MAX_SIZE 30
3
4int main(){
5 int M[MAX_SIZE], A[MAX_SIZE], B[MAX_SIZE];
6 int n, i, brElA=0, brElB=0, sumaSvih =0;
7 double srVrednost;
8
9 do{
10printf("Unesite broj elemenata niza M (broj elemenata ne sme da prelazi 30): ");
11scanf("%d", &n);
12}while(n<0 || n>MAX_SIZE);
13
14printf("\nUnesite elemente niza:\n");
15for(i=0; i<n; i++){
16 printf("M[%d]=",i);
17 scanf("%d", &M[i]);
18}
19
20for(i=1; i<n; i++){
21 if(M[i]>M[i-1]){
22 A[brElA]=M[i];
23 brElA++;
24 }
25}
26
27for(i=0; i<n; i++){
28 sumaSvih+=M[i];
29}
30
31srVrednost=(double)sumaSvih/n;
32
33for(i=0; i<n; i++){
34 if(M[i]>srVrednost){
35 B[brElB]=M[i];
36 brElB++;
37 }
38}
39
40printf("\nA=[");
41for(i=0; i<brElA; i++){
42 if(i>0){
43 printf(", ");
44 }
45 printf("%d", A[i]);
46}
47printf("]\n");
48
49printf("B=[");
50for(i=0; i<brElB; i++){
51 if(i>0){
52 printf(", ");
53 }
54 printf("%d", B[i]);
55}
56printf("]\n\n");
57
58printf("Srednja vrednost niza M je: %.3lf\n", srVrednost);
59
60return 0;
61
62}