-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQ_3_A_3.cpp
More file actions
136 lines (110 loc) · 2.32 KB
/
Copy pathQ_3_A_3.cpp
File metadata and controls
136 lines (110 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <iostream>
using namespace std;
int distinctarr(int [] ,int ); //store and print distinct array
int initarr(int [],int ); //initialize an array
void printarr(int[], int); //print array
void incrsort(int[],int); //ascending sort
void decrsort(int[],int); //descending sort
void finduni(int[],int); //find and print uniq elements array
int main(){
int size=0;
int arr[20];
for (int i=0; i<20; i++){ //to avoid storing of trash
arr[i]=0;
}
size=initarr(arr,20);
distinctarr(arr,size);
finduni(arr,size);
return 0;
}
int initarr(int arr[],int size){
int input=0;
int count;
cout<<"Please enter 20 elements of array. Enter -99 to quit earlier:"<<endl;
for (int i=0; i<size;i++){
cin>>input;
if(input!=-99){
arr[i]=input;
count++;
}
else{
break;
}
}
return count;
}
int distinctarr(int arr[], int size){
bool check=1; //to find distinct nmbrs
int dist[20];
int count=0; //size of distinct array
for(int i=0;i<size;i++){
check=1;
for(int j=0; j<i;j++){
if (arr[i]==arr[j] && i!=j){
check= 0;
}
}
if(check){
dist[count]=arr[i];
count++;
}
}
incrsort(dist,count);
cout<<"Distinct elements are:"<<endl;
printarr(dist,count);
return 0;
}
void printarr(int arr[], int size){
for(int i=0;i<size;i++){
cout<<arr[i]<<endl;
}
}
void incrsort(int arr[], int size){
int temp=0;
for(int i=0; i<size;i++){
for(int j=i; j<size;j++){
if (arr[i]>arr[j]){
temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
}
}
void decrsort(int arr[], int size){
int temp=0;
for(int i=0; i<size;i++){
for(int j=i; j<size;j++){
if (arr[i]<arr[j]){
temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
}
}
void finduni(int arr[],int size){
int uni[20];
bool uniq=1;
int count=0; //size of uniq array
for(int i=0;i<size;i++){ //checking unique nmbrs
uniq=1;
for(int j=0; j<size;j++){
if(arr[i]==arr[j]&& i!=j){
uniq=0;
}
}
if(uniq){ //inserting unique nmbrs to array
uni[count]=arr[i];
count++;
}
}
if(count==0){
cout<<"There is no unique element."<<endl;
}
else{
decrsort(uni,count);
cout<<"Unique elements of array are:"<<endl;
}
printarr(uni,count);
}