| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2329 人关注过本帖
标题:[C语言]为什么srand((unsigned)time(NULL));要和int d1,d2,c1,c2,i,j;的顺序 ...
只看楼主 加入收藏
w208152499
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-6-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
[C语言]为什么srand((unsigned)time(NULL));要和int d1,d2,c1,c2,i,j;的顺序过来才可以运行?
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{srand((unsigned)time(NULL));
    int d1,d2,c1,c2,i,j;
   
    c1=0;c2=0;
    for(i=1;i<=50;i++)
    {d1=0;d2=0;
        for(j=1;j<=5;j++)
        
        {
        d1=d1+rand()%6+1;d2=d2+rand()%6+1;
        }if(d1>d2)c1++;else if(d1<d2)c2++;
   
    }
    if(c1>c2)printf("第一个玩家赢了!");
    else
        if(c1<c2)printf("第二个玩家赢了!");
        else printf("平局");return 0;

}




#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int d1,d2,c1,c2,i,j;
srand((unsigned)time(NULL));
   
    c1=0;c2=0;
    for(i=1;i<=50;i++)
    {d1=0;d2=0;
        for(j=1;j<=5;j++)
        
        {
        d1=d1+rand()%6+1;d2=d2+rand()%6+1;
        }if(d1>d2)c1++;else if(d1<d2)c2++;
   
    }
    if(c1>c2)printf("第一个玩家赢了!");
    else
        if(c1<c2)printf("第二个玩家赢了!");
        else printf("平局");return 0;

}
图片附件: 游客没有浏览图片的权限,请 登录注册
后面换位置可以运行但是我不知道第一种情况错在哪里
搜索更多相关主题的帖子: int printf NULL time include 
2020-06-05 14:10
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
收藏
得分:5 
应该不会,你图片上错误提示和你代码对不上,确认下你IDE里5行和6行的代码吧
2020-06-05 16:41
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1694
专家分:4282
注 册:2007-12-27
收藏
得分:5 
老标准C要求在每个函数或复合语句的开头首先声明局部变量,然后才能写其他语句。
我本人也一直是坚持这么干的。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-06-05 16:57
w208152499
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-6-5
收藏
得分:0 
回复 2楼 fulltimelink
我代码发的第一个是错误的,运行之后就是照片里面那个错误,第二个代码是正确的可以很好的运行,但问题是srand((unsigned)time(NULL));在int d1,d2,c1,c2,i,j;前面就不可以了,必须换一下顺序int d1,d2,c1,c2,i,j;在前srand((unsigned)time(NULL));在后面才可以,你可以复制第一个代码试一下,然后换一下那两个的位置再试一下,所以我就不明白为什么会出错
图片附件: 游客没有浏览图片的权限,请 登录注册

2020-06-05 18:25
JabinZ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:34
专家分:180
注 册:2020-5-7
收藏
得分:5 
回复 4楼 w208152499
你的编译器有问题吧, 你这两个代码在我这都可以运行

不过 你这代码风格,属实有些上头啊

[此贴子已经被作者于2020-6-5 18:58编辑过]

2020-06-05 18:57
w208152499
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-6-5
收藏
得分:0 
回复 5楼 JabinZ
我试了一下在线编译的确都可以,vs2012应该有问题,这是我们老师编译的代码,不知道上头是什么意思,是太简陋吗?还是太粗糙?
2020-06-08 17:50
JabinZ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:34
专家分:180
注 册:2020-5-7
收藏
得分:0 
回复 6楼 w208152499
代码太能缩减了,不方便阅读,
2020-06-08 18:37
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:5 
习惯悄然改变,程序在吸取新知识也同时也放松了一些戒律
2020-06-09 10:58
快速回复:[C语言]为什么srand((unsigned)time(NULL));要和int d1,d2,c1,c2,i,j; ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016345 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved