Как сделать, чтобы random работал в нескольких диапазонах? - C (СИ)
Формулировка задачи:
Нужно отобразить в одном массиве цифры и буквы в случайном порядке и потом использывать группировку элементов массива.
Уже на первом этапе задачи столкнулся с проблемой.
Я могу отобразить символы в массиве но только в одном диапазоне (Ascii)а надо в нескольких да еще в один массив (только буквы и цифры)
Спасибо
#include <stdio.h> #include <stdlib.h> int main() { int i; char mas[100]; for(i=0;i<100;i=i++){ mas[ i ] =97+(122-97)*rand()/ RAND_MAX; // строчные буквы printf("%c",mas[i]);} return (0); /*48+(58-48)(только цифры)*//*mas[ i ] = rand() % 26 + 'A' (еще один вариант для букв)*/ }
Решение задачи: «Как сделать, чтобы random работал в нескольких диапазонах?»
textual
Листинг программы
#include <stdio.h> char get_random_character() { switch( rand() % 3 ) { case 0: return rand() % 25 + 'a'; case 1: return rand() % 25 + 'A'; case 2: return rand() % 10 + '0'; } } int main( int argc, char ** argv ) { srand( time(0) ); int i; for( i = 0; i < 80; i++ ) putchar( get_random_character() ); return 0; }
Объяснение кода листинга программы
- Включение файла стандартного ввода/вывода
- Функция get_random_character() генерирует случайный символ из заданного диапазона
- В функции используется оператор switch для определения случайного числа в диапазоне от 0 до 2
- В каждом случае функции возвращается случайное число в заданном диапазоне
- Функция main() запускает генератор случайных чисел с помощью функции srand(time(0))
- Переменная i используется для цикла, который генерирует 80 случайных символов
- Каждый символ выводится на экран с помощью функции putchar()
- Программа завершается возвратом 0 из функции main()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д