| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
Reworld,下班在家制作游戏,1500万奖金等你拿编程微博 - 发现编程界的新鲜事
共有 605 人关注过本帖
标题:除了隔一秒的办法,还有其他办法吗?这也太耽误时间了。
只看楼主 加入收藏
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1472
专家分:6573
注 册:2010-7-5
结帖率:93.64%
  已结贴   问题点数:100  回复次数:13   
除了隔一秒的办法,还有其他办法吗?这也太耽误时间了。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main(void){
    int i,j;
    for (i=0;i<10;i++){
        Sleep(1000);
        srand((unsigned)time(NULL));
        j=rand();
        printf("%d,",j);
    }
    return 0;
}
搜索更多相关主题的帖子: 办法 其他 时间 include int 
2019-04-12 08:12
rjsp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:316
帖 子:6552
专家分:37990
注 册:2011-1-18
  得分:0 
就没听懂你想干什么?你总得说出你想达成什么功能吧

另外,为什么要不停的调用 srand ?
2019-04-12 08:31
forever74
Rank: 10Rank: 10Rank: 10
来 自:CC
等 级:贵宾
威 望:23
帖 子:1188
专家分:1911
注 册:2007-12-27
  得分:0 
楼主八成是以为每个茶杯都得配个茶壶才行。

别人能不等于你能,别人不能不等于你不能
不要问别人能不能,要说:我能
2019-04-12 09:02
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1472
专家分:6573
注 册:2010-7-5
  得分:0 
http://c.
最后那句:
那么,该如何解决呢?难道就没有办法连续生成随机数了吗?当然有,我们将在《C语言连续生成多个随机数》一节中给出一种巧妙的解决方案。

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2019-04-12 09:27
lin5161678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:17
帖 子:528
专家分:1930
注 册:2011-12-3
  得分:0 
不停调用srand 所以错
怎么改???
这还用得着问吗
多简单啊
不用脑子 就能想出来了
写在循环里面所以不停调用srand
那不写再循环里面不就完事了

这点东西很难想到吗 ?
懵?
2019-04-12 09:58
lin5161678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:17
帖 子:528
专家分:1930
注 册:2011-12-3
  得分:0 
以下是引用不懂才问在2019-4-12 09:27:19的发言:
http://c.

这个网站别看了 自己老老实实看书 做练习
内容参差不齐 不知道什么地方就摆了一个坑等着耍人
种子在每次启动计算机时是随机的,但是一旦计算机启动以后它就不再变化了;

错的 默认种子和计算机启动毫无关系 默认种子就是 1

程序代码:
    printf("%d\n", rand());    
    srand(1);
    printf("%d\n", rand());    


结果是一样的
2019-04-12 10:05
rjsp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:316
帖 子:6552
专家分:37990
注 册:2011-1-18
  得分:0 
http://c.
“该如何解决呢?难道就没有办法连续生成随机数了吗?当然有,我们将在《C语言连续生成多个随机数》一节中给出一种巧妙的解决方案。”
这文章有,弄个白痴代码,还要用“巧妙”的方案去解决(而不是“堂堂正正”的正常手段)。
而且我在网上都没找到这个所谓的“《C语言连续生成多个随机数》”,真想见识一下作者。
2019-04-12 10:13
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1472
专家分:6573
注 册:2010-7-5
  得分:0 
回复 7楼 rjsp
我在看别的书:
程序代码:
//实例来源:。。。
//实例功能:求4名学生两次考试中3门课程的总分并显示
//运行结果描述:
#include <stdio.h>
int main(void){
    int i,j;
    int fenshu1[4][3]={{91,63,78},{67,72,46},{89,34,53},{32,54,34}};
    int fenshu2[4][3]={{97,67,82},{73,43,46},{97,56,21},{85,46,35}};
    int sum[4][3];

    //求两次考试的分数之和
    for (i=0;i<4;i++){  //4名学生的
        for (j=0;j<3;j++){  //3门课程的
            sum[i][j]=fenshu1[i][j]+fenshu2[i][j];  //两次的分数的和
        }
    }
    //显示第一次考试的分数:
    puts("第一次考试的分数:");
    for (i=0;i<4;i++){
        for (j=0;j<3;j++){
            printf("%4d",fenshu1[i][j]);
        }putchar('\n');
    }
    //显示第二次考试的分数:
    puts("第二次考试的分数");
    for (i=0;i<4;i++){
        for (j=0;j<3;j++){
            printf("%4d",fenshu2[i][j]);
        }putchar('\n');
    }
    //显示总分
    puts("总分:");
    for (i=0;i<4;i++){
        for (j=0;j<3;j++){
            printf("%4d",sum[i][j]);
        }putchar('\n');
    }
    return 0;
}


照着书初始化数组分数的时候,突然想到这是4个学生,要是40个学生,输入他们的分数,我岂不是要累死。
于是想来个循环,随机生成些分数。省了我一个一个输入了。因为刚学到数组,还没学到随机数。所以就百度一下,看到那个文章,是用时间的秒数重置种子的。
所以就想用一秒生成一个随机数,才有了上面的代码。后来又想,要是生成40多个随机的分数,岂不是要好几十秒,于是在来问一问。

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2019-04-12 10:25
rjsp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:316
帖 子:6552
专家分:37990
注 册:2011-1-18
  得分:60 
我将你的一开始的例子改了一下
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
    srand( (unsigned)time(NULL) );

    for( size_t i=0; i!=10; ++i )
    {
        int v = rand();
        printf( "%d, ", v );
    }
}

如果想将 随机数 限定在 [0,100] 范围内,那么将 int v = rand(); 改为
int v = (int)(rand()/(1.0+RAND_MAX)*101);
即可。


2019-04-12 10:36
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1472
专家分:6573
注 册:2010-7-5
  得分:0 
回复 9楼 rjsp
这个靠谱,我就是这个意思。
会用VBS写随机数,就是没学到C语文的随机数呢。

程序代码:
Set WshShell = CreateObject("Wscript.Shell")
Dim i
Dim yuwen(30)  '30个学生的一次语文考试成绩
i=0
Do While i<30
    Randomize  '这句就是我想用时间实现的,当然也许有更好的办法
    yuwen(i)=int(rnd*99+1)+1
    myPopMsg=myPopMsg & yuwen(i) & ""
    i=i+1        
Loop 
a=WshShell.Popup(myPopMsg,1000,"这次语文考试的成绩:",vbOkOnly+vbDefaultButton1+vbInformation)
Set WshShell = Nothing

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2019-04-12 11:19
快速回复:除了隔一秒的办法,还有其他办法吗?这也太耽误时间了。
数据加载中...
 
   



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

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