You are on page 1of 4

1 // Intro to Arrays (1D) Practice Problems

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 */

You might also like