Professional Documents
Culture Documents
2 // @psrth, 14.01.20
3
4 #include<stdio.h>
5
6 int main() {
7
8 // initializing array of size based on user input
9 int array_size = 10;
10 printf("Enter size of array: ");
11 scanf("%d", &array_size);
12 int arr[array_size];
13
14
15
16 // read all elements of an array from the user
17 for (int i = 0; i < array_size; i++){
18 printf("Enter element %d: ", (i+1));
19 scanf("%d", &arr[i]);
20 }
21
22
23
24 // printing the array
25 printf("Array is: ");
26 for (int i = 0; i < array_size; i++){
27 printf("%d ", arr[i]);
28 }
29
30
31
32 // printing the sum of all array elements
33 int sum = 0;
34 for (int i = 0; i < array_size; i++){
35 sum += arr[i];
36 }
37 printf("\n");
38 printf("Sum of all elements is: %d\n", sum);
39
40
41
42 // size of array using sizeof operator
43 int array_size2 = sizeof(arr)/sizeof(arr[0]);
44 printf("Size of array is: %d\n", array_size2);
45
46
47
48 // copy all elements of arr1 into arr2
49 int arr2[array_size];
50 for (int i = 0; i < array_size; i++) {
51 arr2[i] = arr[i];
52 }
53 printf("Copied array is: ");
54 for (int i = 0; i < array_size; i++){
55 printf("%d ", arr2[i]);
56 }
57
58
59
60 // reverse array using function (see after main)
61 int reverseArray(int arr[], int array_size);
62 printf("\n");
63 reverseArray(arr2, array_size);
64 // NOTE, AFTER THIS OPERATION, ARR2 STORES REVERSED VALUES.
65
66
67
68 // WAP to print number of duplicate elements in an array
69 printf("\n");
70 int master_counter = 0;
71 for(int i = 0; i < array_size; i++) {
72 int var_check = arr[i];
73 int counter = 0;
74 for (int j = i; j < array_size; j++) {
75 if (arr[j] == var_check)
76 counter++;
77 }
78 if (counter > 1) {
79 printf("%d occurs %d times in the array.\n", var_check, counter);
80 master_counter++;
81 }
82 }
83 if (master_counter == 0)
84 printf("No duplicates were found.\n");
85
86
87
88 // WAP to print maximum and minimum number in an array
89 int max_num = arr[0], min_num = arr[0];
90 for (int i = 0; i < array_size; i++){
91 if (arr[i] > max_num)
92 max_num = arr[i];
93 if (arr[i] < min_num)
94 min_num = arr[i];
95 }
96 printf("Largest number is: %d\n", max_num);
97 printf("Smallest number is: %d\n", min_num);
98
99
100
101 // WAP to seperate even and odd numbers into 2 arrays
102 int even_arr[array_size];
103 int even = 0;
104
105 int odd_arr[array_size];
106 int odd = 0;
107
108 for (int i = 0; i < array_size; i++) {
109 if (((arr[i])%2) == 0) {
110 even_arr[even] = arr[i];
111 even++;
112 }
113 else {
114 odd_arr[odd] = arr[i];
115 odd++;
116 }
117 }
118
119 printf("Array is: ");
120 for (int i = 0; i < array_size; i++){
121 printf("%d ", arr[i]);
122 }
123 printf("\n");
124 printf("Even array is: ");
125 for (int i = 0; i < even; i++){
126 printf("%d ", even_arr[i]);
127 }
128 printf("\n");
129 printf("Odd array is: ");
130 for (int i = 0; i < odd; i++){
131 printf("%d ", odd_arr[i]);
132 }
133 printf("\n");
134
135
136
137 // WAP to find second largest element in an array
138 int largest_num = arr[0], sl_num = arr[0];
139 for (int i = 0; i < array_size; i++) {
140 if (arr[i] > largest_num){
141 sl_num = largest_num;
142 largest_num = arr[i];
143 }
144 }
145 printf("Second largest number is: %d\n", sl_num);
146
147 }
148
149
150 int reverseArray(int arr[], int array_size){
151 int half_point = array_size/2;
152 for (int i = 0; i <= half_point; i++){
153 int rev_index = array_size - (i+1);
154 int temp = arr[i];
155 arr[i] = arr[rev_index];
156 arr[rev_index] = temp;
157 }
158
159 printf("Reversed array is: ");
160 for (int i = 0; i < array_size; i++){
161 printf("%d ", arr[i]);
162 }
163
164 return 0;
165 }
166
167 /*
168 * Sample Output
169 * Enter size of array: 10
170 * Enter element 1: 1
171 * Enter element 2: 1
172 * Enter element 3: 2
173 * Enter element 4: 3
174 * Enter element 5: 4
175 * Enter element 6: 5
176 * Enter element 7: 6
177 * Enter element 8: 7
178 * Enter element 9: 8
179 * Enter element 10: 9
180 * Array is: 1 1 2 3 4 5 6 7 8 9
181 * Sum of all elements is: 46
182 * Size of array is: 10
183 * Copied array is: 1 1 2 3 4 5 6 7 8 9
184 * Reversed array is: 9 8 7 6 4 5 3 2 1 1
185 * 1 occurs 2 times in the array.
186 * Largest number is: 9
187 * Smallest number is: 1
188 * Array is: 1 1 2 3 4 5 6 7 8 9
189 * Even array is: 2 4 6 8
190 * Odd array is: 1 1 3 5 7 9
191 * Second largest number is: 8
192 */