Чтобы получить «случайные» целые числа из диапазона от 0
до RAND_MAX
(что является довольно большим верхним пределом, характерным для реализации), вы можете использовать функцию rand
из stdlib.h
.
Попробуйте это:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
printf("%i\n", rand());
return 0;
}
( рабочий пример )
( документация по rand )
ЕстьТем не менее, проблема остается: этот код будет выдавать один и тот же вывод при каждом запуске программы.Чтобы предотвратить это, нам нужно запустить генератор случайных чисел - и , хотя это, строго говоря, не гарантирует работу , на практике почти каждая реализация поддерживает заполнение генератора с текущим временем.Это сводится к вызову srand(time(0))
(или эквивалентно srand(time(NULL))
) перед первым (и только первым) вызовом rand()
:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
srand(time(NULL));
printf("%i\n", rand());
printf("%i\n", rand());
return 0;
}
( рабочий пример )
( srand документация )
Попробуйте выполнить оба приведенных выше примера несколько раз и посмотрите разницу.
Теперь, как перевести числа в символы?Почти все реализации кодируют символы в кодировке ASCII ( ссылка на Википедию ).Вы можете легко преобразовать числа в символы, используя таблицу преобразования из Википедии:
#include <stdio.h>
int main(void)
{
int i = 68;
char ch = i;
printf("%c\n", ch);
return 0;
}
Согласно таблице 68 переводится в D, и это действительно то, что напечатано: ( рабочий пример )
Теперь я собирался сказать "ваша очередь сейчас", но, очевидно, ответ выше меня касается и остальных, поэтому я не буду это говорить.