Utils

Run Settings
LanguageC
Language Version
Run Command
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <limits.h> #include <math.h> double random_double() { static int initialized = 0; if (!initialized) { srand(time(0)); initialized = 1; } return (double) rand() / RAND_MAX; } int random_int(int min, int max) { return floor(min + (max - min + 1) * random_double()); } int num_length(int number) { char sign = number < 0; number = abs(number); if (number >= 1000000000) return sign + 10; if (number >= 100000000) return sign + 9; if (number >= 10000000) return sign + 8; if (number >= 1000000) return sign + 7; if (number >= 100000) return sign + 6; if (number >= 10000) return sign + 5; if (number >= 1000) return sign + 4; if (number >= 100) return sign + 3; if (number >= 10) return sign + 2; return sign + 1; } void print_array(int* array, int length) { for (int i = 0; i < length; i++) { printf("%d, ", array[i]); } } char* to_string(int* array, int length) { size_t size = 0; for (int i = 0; i < length; i++) { size += (num_length(array[i]) + (i < length - 1 ? 2 : 1)) * sizeof(char); } char* string = malloc(size); char* ptr = string; for (int i = 0; i < length; i++) { sprintf(ptr, "%i%s", array[i], i < length - 1 ? ", " : ""); ptr += num_length(array[i]) + (i < length - 1 ? 2 : 1); } return string; } double* random_double_array(int length) { double* array = malloc(length * sizeof(double)); for (int i = 0; i < length; ++i) { array[i] = random_double(); } return array; } int* random_int_array(int length, int min, int max) { int* array = malloc(length * sizeof(int)); for (int i = 0; i < length; ++i) { array[i] = random_int(min, max); } return array; } int main(void) { const int size = 5; int* array = random_int_array(size, -10, 10); char* stringifyed = to_string(array, size); printf("%s\n", to_string(array, size)); free(stringifyed); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines