搜索
查看: 798|回复: 4
打印 上一主题 下一主题

这编译器是不是有问题啊?哪里错了?

[复制链接]
跳转到指定楼层
楼主
发表于 2015-12-6 20:32:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int cmp=arc4random_uniform(3);
    int player=-1;
    printf("请出拳,0代表石头,1代表剪子,2代表布\n");
    scanf("%i",&player);
    if(((0==player)&&(1==cmp))||
        ((1==player)&&(2==cmp))||
        ((2==player)&&(0==cmp))){
        printf("player win\n");
}else if(((0==cmp)&&(1==player))||
        ((1==cmp)&&(2==player))||
        ((2==cmp)&&(0==player))){
        printf("cmp win\n");
        }else
        {
        printf("以和为贵\n");
        }
        printf("player=%i,cmp=%i\n",player,cmp);
system("pause");
return 0;
}

楼主新帖
楼主热帖
沙发
发表于 2015-12-6 22:51:46 | 只看该作者
arc4random_uniform
这函数哪里的?
板凳
发表于 2015-12-7 00:24:30 | 只看该作者
rosynirvana 发表于 2015-12-6 22:51
arc4random_uniform
这函数哪里的?

刚才查资料说Objective-C上有这个函数,应该是他们看的教程用的苹果系统吧,
资料上说这个函数不用每次设种子,是“真随机数”,
请问大神知道C语言有类似的函数吗?还是只能用rand?
虽然有人说可以用random,可是我完全用不了
地板
发表于 2015-12-7 12:27:23 | 只看该作者
小榛鼠 发表于 2015-12-7 00:24
刚才查资料说Objective-C上有这个函数,应该是他们看的教程用的苹果系统吧,
资料上说这个函数不用每次 ...

arc4random函数族是BSD上面的libc提供的,不是Objectvie-C的也不是苹果的。只是Objective-C可以调用C的库,苹果的darwin内核是FreeBSD衍生过来的。

arc4random函数族,准确来说是在调用前自己设置种子,并非真的不用设种子,而且也不是真随机数,可以用于实际编程的随机数发生器都是伪随机数。只是arc4random函数族表现出来的随机性会比传统的srand rand函数族好。

C的标准库只有srand和rand这一组,如果想要随机性比较好的随机数发生,可以用系统提供的。BSD提供arc4random和random,windows上的api是CryptGenRandom,参考
https://msdn.microsoft.com/en-us/library/windows/desktop/aa379942(v=vs.85).aspx 的例子和说明

random这个函数除了BSD上面有之外,记得turbo C也有,标准库里是没有的
5#
发表于 2015-12-7 17:43:55 | 只看该作者
rosynirvana 发表于 2015-12-7 12:27
arc4random函数族是BSD上面的libc提供的,不是Objectvie-C的也不是苹果的。只是Objective-C可以调用C的库 ...

明白了!非常感谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表