2013-09-21 5 views
0

Это мой кодC случайное число

#include <stdio.h> 
#include <stdlib.h> 


main() 
{ 
    int r = rand() % 20; 
    printf("%d", r); 
} 

Я хочу, чтобы получить случайное число 19 и ниже, но это только дает мне 1 каждый раз, когда я скомпилировать и запустить его. Может ли кто-нибудь показать мне, что я делаю неправильно?

+1

Вы не назвали 'srand()'. –

+1

Вам нужно засеять генератор случайных чисел, посмотрите 'srand()'. 'main()' возвращает 'int', между прочим. –

+0

Что я могу добавить в функцию? – samir

ответ

1

Попробуйте

#include <stdio.h> 
#include <stdlib.h> 


int main() 
{ 
    srand(time(NULL)); 
    int r = rand() % 20; 
    printf("%d", r); 
} 

Примечание: Использование% не является отличным способом, чтобы получить равномерное распределение.
См.: Recommended way to initialize srand? для получения дополнительной информации.

+0

Это вряд ли лучше. Он будет печатать одинаковое число много раз подряд, если вы запустите его быстро. –

+0

@R ..: Я думаю, вы обнаружите, что я уже рассмотрел эту ситуацию в ссылке. –

0

Если вы используете Turbo C++ 4.5, затем установите

randomize(); 

перед тем

int r=rand()%20; 

Это также даст нужного результата.

Смежные вопросы