Untitled
unknown
plain_text
2 years ago
1.8 kB
4
Indexable
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define MAX_ARRAY_SIZE 15 void generate_random_array(int *array, char **words, int size) { srand(time(NULL)); // Seed the random number generator with the current time // Generate random numbers and words for (int i = 0; i < size; i++) { array[i] = rand() % 100; char *word = (char *) malloc(sizeof(char) * 6); // Allocate memory for a 5-letter word for (int j = 0; j < 5; j++) { word[j] = 'a' + rand() % 26; // Generate a random lowercase letter } word[5] = '\0'; // Add null terminator to the end of the word words[i] = word; } } void sort_array(int *array, char **words, int size) { // Sort the array using binary search with pointers for (int i = 0; i < size; i++) { int key = array[i]; char *key_word = words[i]; int j = i - 1; while (j >= 0 && array[j] > key) { array[j + 1] = array[j]; words[j + 1] = words[j]; j--; } array[j + 1] = key; words[j + 1] = key_word; } } int main() { int size = rand() % MAX_ARRAY_SIZE + 1; // Generate a random size for the array between 1 and MAX_ARRAY_SIZE int array[size]; char *words[size]; generate_random_array(array, words, size); printf("Before sorting:\n"); for (int i = 0; i < size; i++) { printf("%d %s\n", array[i], words[i]); } sort_array(array, words, size); printf("After sorting:\n"); for (int i = 0; i < size; i++) { printf("%d %s\n", array[i], words[i]); } // Free memory allocated for words for (int i = 0; i < size; i++) { free(words[i]); } return 0; }
Editor is loading...