Заполнение массива строчными буквами английского алфавита в случайном порядке - C (СИ)
Формулировка задачи:
Напишите программу, в которой массив заполняется строчными буквами английского алфавита в случайном порядке; значения символов и их коды вывести на экран.Определить, какой элемент встретился чаще других
Решение задачи: «Заполнение массива строчными буквами английского алфавита в случайном порядке»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define random_char() ( rand() % ( 'Z' - 'A' + 1 ) + ( ( rand() & 1 ) ? 'A' : 'a' ) ) char * random_string(size_t len) { size_t i = 0; char * ptr = malloc(len + 1); if ( ! ptr ) return NULL; while ( i < len ) ptr[i++] = random_char(); ptr[i] = '\0'; return ptr; } int main(void) { size_t len; while ( printf("Length: ") && scanf("%u", &len) == 1 && len ) { char * s = random_string(len); printf("String: %s\n", s); free(s); } return 0; }
Объяснение кода листинга программы
- Программа начинается с подключения необходимых библиотек: stdio.h, stdlib.h и time.h
- Далее, с помощью препроцессорных директив определяют функцию random_char(), которая будет генерировать случайный символ в диапазоне от 'A' до 'Z' (включительно)
- Создают функцию random_string(size_t len), которая принимает в качестве аргумента длину строки, которую необходимо сгенерировать. В этой функции происходит выделение памяти под строку с помощью malloc(), заполнение этой строки случайными символами с помощью цикла while и добавление нулевого символа в конце строки.
- В функции main() происходит запрос на ввод длины строки с помощью printf() и scanf(). Затем вызывается функция random_string() и выводится сгенерированная строка с помощью printf().
- После вывода строки, память под строку освобождается с помощью free().
- Код находится в бесконечном цикле, пока пользователь не введет ноль для длины строки.
- В конце программы возвращается 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д