Как сделать, чтобы 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;
}

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

  1. Включение файла стандартного ввода/вывода
  2. Функция get_random_character() генерирует случайный символ из заданного диапазона
  3. В функции используется оператор switch для определения случайного числа в диапазоне от 0 до 2
  4. В каждом случае функции возвращается случайное число в заданном диапазоне
  5. Функция main() запускает генератор случайных чисел с помощью функции srand(time(0))
  6. Переменная i используется для цикла, который генерирует 80 случайных символов
  7. Каждый символ выводится на экран с помощью функции putchar()
  8. Программа завершается возвратом 0 из функции main()

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


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

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

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