-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.c
108 lines (82 loc) · 1.85 KB
/
main.c
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define ARR_SIZE 5
int getLowestNr(int* arr) {
// return lowest nr in array
int lowestValue = arr[0];
for (int i = 1; i < ARR_SIZE; i++) {
if (arr[i] < lowestValue)
lowestValue = arr[i];
}
return lowestValue;
}
int getLowestNrIndex(int* arr, int size) {
// return lowest nr in array
int lowestIndex = 0;
for (int i = 1; i < size; i++) {
if (arr[i] < arr[lowestIndex])
lowestIndex = i;
}
return lowestIndex;
}
int *removeIndex(int *arr, int index, int size) {
// remove [index] from arr
int *newArray = malloc(size-1);
int done = 0; // bool ?? -> false
for (int i = 0; i < size; i++) {
if (i != index){
if (0 == done)
newArray[i] = arr[i];
else
newArray[i-1] = arr[i];
}
else {
done = 1; // true
}
}
return newArray;
}
int *sortArr(int *arr) {
// sort array based on < or >
int *sorted = malloc(ARR_SIZE);
int size = ARR_SIZE;
int index;
for (int i = 0; i < ARR_SIZE; i++) {
printf("\nArray: ");
printIntArr(arr, size);
index = getLowestNrIndex(arr, size);
sorted[i] = arr[index];
arr = removeIndex(arr, index, size);
size--;
}
return sorted;
}
int *createArray() {
// create array with random values with size = ARR_SIZE
srand(time(NULL));
// int arr[ARR_SIZE];
int *arr = malloc(ARR_SIZE);
for (int i = 0; i < ARR_SIZE; i++) {
arr[i] = rand()%1000;
}
return arr;
}
void printIntArr (int *arr, int size) {
// print int array
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]); // print array
}
}
int main()
{
int *arr = createArray();
printf("Array unsorted: ");
printIntArr(arr, ARR_SIZE);
// printf("\nLowest in array: %d", getLowestNr(arr));
// printf("\nLowest Index: %d", getLowestNrIndex(arr));
int *sortedArr = sortArr(arr);
printf("\nArray sorted: ");
printIntArr(sortedArr, ARR_SIZE);
return (0);
}