Заполнение массива строчными буквами английского алфавита в случайном порядке - 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;
}

Объяснение кода листинга программы

  1. Программа начинается с подключения необходимых библиотек: stdio.h, stdlib.h и time.h
  2. Далее, с помощью препроцессорных директив определяют функцию random_char(), которая будет генерировать случайный символ в диапазоне от 'A' до 'Z' (включительно)
  3. Создают функцию random_string(size_t len), которая принимает в качестве аргумента длину строки, которую необходимо сгенерировать. В этой функции происходит выделение памяти под строку с помощью malloc(), заполнение этой строки случайными символами с помощью цикла while и добавление нулевого символа в конце строки.
  4. В функции main() происходит запрос на ввод длины строки с помощью printf() и scanf(). Затем вызывается функция random_string() и выводится сгенерированная строка с помощью printf().
  5. После вывода строки, память под строку освобождается с помощью free().
  6. Код находится в бесконечном цикле, пока пользователь не введет ноль для длины строки.
  7. В конце программы возвращается 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы