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.

  1. U niz A treba ubaciti sve članove niza M, počevši od drugog, a koji su veći od svog prethodnika.

  2. Za niz M je neophodno izračunati njegovu srednju vrednost.

  3. Formirati niz B tako da se sastoji od elemenata niza M koji su veći od srednje vrednosti niza M

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}