Во-первых, random()
не принимает никаких аргументов.
Во-вторых, из тонкого руководства :
Как rand () , random () по умолчанию создает последовательность чисел, которые могут быть продублированы путем вызова srandom () с 1 в качестве начального числа.
Таким образом, если вы явно не укажете начальное число при вызове srandom()
, random()
будет каждый раз выдавать одну и ту же последовательность значений.
В-третьих, random()
возвращает long
, поэтому вам следует использовать%ld
в вашем printf()
вызове.
В-четвертых, узнайте о флагах предупреждений вашего компилятора, включите их все и обратите внимание на их вывод.Вы можете отключить некоторые флаги предупреждения, как только поймете, почему это безопасно.