generated from justuser-31/code_projects_template
52 lines
990 B
C
52 lines
990 B
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <sys/time.h>
|
|
#include <limits.h>
|
|
|
|
#include "c_cross_pack/libs/string.h"
|
|
|
|
int rmin(int* nums, int size, double i) {
|
|
if (i == INT_MIN) {
|
|
return rmin(nums, size - 1, nums[size]);
|
|
}
|
|
// If we at the end
|
|
if (size == 0) {
|
|
return nums[0];
|
|
}
|
|
else {
|
|
int next_i = rmin(nums, size - 1, nums[size]);
|
|
if (rmin(nums, size - 1, nums[size]) < nums[size]) {
|
|
return next_i;
|
|
}
|
|
else {
|
|
return nums[size];
|
|
}
|
|
}
|
|
}
|
|
|
|
int main() {
|
|
// Generate seed from now time in microseconds
|
|
struct timeval now;
|
|
gettimeofday(&now, NULL);
|
|
srandom(now.tv_usec);
|
|
|
|
string list = strInit("");
|
|
// Generate random nums under 100
|
|
int* nums = malloc(10 * sizeof(int));
|
|
for (int i = 0; i < 10; i++) {
|
|
nums[i] = random() % 100;
|
|
//printf("%d ", nums[i]);
|
|
strAdd(&list, int2Str(&nums[i]));
|
|
strAdd(&list, " ");
|
|
}
|
|
//printf("\n");
|
|
|
|
// Find min
|
|
int min = rmin(nums, 10, INT_MIN);
|
|
|
|
printf("Original list:\n%s\n"
|
|
"\nMin: %d\n", list, min);
|
|
|
|
return 0;
|
|
}
|