SHOW:
|
|
- or go back to the newest paste.
1 | #include <QtCore/QCoreApplication> | |
2 | #include <iostream> | |
3 | #include <cstdlib> | |
4 | #include <cmath> | |
5 | #include <cstdio> | |
6 | using namespace std; | |
7 | void array(int *start, int *finish){ | |
8 | int j=0; | |
9 | for(int *i=start; i<finish; i++){ | |
10 | cout<<"Задайте елемент з номером "<<j<<": "; | |
11 | cin>>*i; | |
12 | j++; | |
13 | } | |
14 | } | |
15 | ;void print(int *start, int *finish){ | |
16 | for(int *i=start; i<finish; i++){ | |
17 | cout<<*i<<"; "; | |
18 | } | |
19 | } | |
20 | int count(int *start, int *finish){ | |
21 | double sergeom, dob=1; | |
22 | int count=0; | |
23 | for(int *i=start; i<finish; i++) | |
24 | dob*=*i; | |
25 | sergeom=pow(dob,(1/((double)(finish-start)))); | |
26 | for(int *i=start; i<finish;i++){ | |
27 | if(*i>sergeom) | |
28 | count++; | |
29 | } | |
30 | return count; | |
31 | } | |
32 | void vstavka(int *finish, int *pos, int el, int&size){ | |
33 | int *i=finish; | |
34 | size++; | |
35 | for(; i>pos; i--) | |
36 | *i=*(i-1); | |
37 | *i=el; | |
38 | } | |
39 | void sortvstavkou(int *start, int *finish){ | |
40 | for(int *i=start+1; i<finish; i++){ | |
41 | if(*i<*(i-1)){ | |
42 | int buf=*i; | |
43 | int *j=i; | |
44 | do{ | |
45 | *j=*(j-1); | |
46 | j--; | |
47 | }while(*j!=*(start-1) && buf<*(j-1)); | |
48 | *j=buf; | |
49 | } | |
50 | } | |
51 | } | |
52 | void sort(int *start, int *finish){ | |
53 | int parn[100], sizea=0, neparn[100], sizeb=0; | |
54 | for(int *i=start; i<finish; i++){ | |
55 | if(*i%2==0){ | |
56 | parn[sizea]=*i; | |
57 | sizea++; | |
58 | } | |
59 | else{ | |
60 | neparn[sizeb]=*i; | |
61 | sizeb++; | |
62 | } | |
63 | } | |
64 | int *q=parn, *w=neparn; | |
65 | for(int *i=start; i<parn+sizea; i++, q++) | |
66 | *i=*q; | |
67 | for(int *i=parn+sizea+1; i<finish; i++, w++) | |
68 | *i=*w; | |
69 | } | |
70 | void sort(int *start, int *finish); | |
71 | void sortvstavkou(int *start, int *finish); | |
72 | void vstavka(int *finish, int pos, int el, int&size); | |
73 | int count(int *start, int *finish); | |
74 | void array(int *start, int *finish); | |
75 | void print(int *start, int *finish); | |
76 | int main(int argc, char *argv[]) | |
77 | { | |
78 | QCoreApplication a(argc, argv); | |
79 | system("color F0"); | |
80 | int ar[100], size, pos, el; | |
81 | cout<<"Задайте розмiр масиву: "; | |
82 | cin>>size; | |
83 | array(ar, ar+size); | |
84 | cout<<"Отриманий масив: "; | |
85 | print(ar, ar+size); | |
86 | cout<<"\nКiлькiсть елементiв, що бiльшi за середнє геометричне: "<<count(ar, ar+size); | |
87 | cout<<"\nЗадайте позицiю в яку необхiдно вставити елемент: "; | |
88 | cin>>pos; | |
89 | cout<<"Задайте цей елемент: "; | |
90 | cin>>el; | |
91 | vstavka(ar+size, ar+pos, el, size); | |
92 | print(ar, ar+size); | |
93 | cout<<endl; | |
94 | sortvstavkou(ar, ar+size); | |
95 | sort(ar, ar+size); | |
96 | print(ar, ar+size); | |
97 | return a.exec(); | |
98 | } |