| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2970 人关注过本帖
标题:除了隔一秒的办法,还有其他办法吗?这也太耽误时间了。
只看楼主 加入收藏
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
结帖率:91.53%
收藏
已结贴  问题点数: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
就没听懂你想干什么?你总得说出你想达成什么功能吧

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

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2019-04-12 09:02
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
http://c.
最后那句:
那么,该如何解决呢?难道就没有办法连续生成随机数了吗?当然有,我们将在《C语言连续生成多个随机数》一节中给出一种巧妙的解决方案。

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

这点东西很难想到吗 ?
懵?

https://zh.
2019-04-12 09:58
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用不懂才问在2019-4-12 09:27:19的发言:
http://c.

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

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

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


结果是一样的

https://zh.
2019-04-12 10:05
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
http://c.
“该如何解决呢?难道就没有办法连续生成随机数了吗?当然有,我们将在《C语言连续生成多个随机数》一节中给出一种巧妙的解决方案。”
这文章有,弄个白痴代码,还要用“巧妙”的方案去解决(而不是“堂堂正正”的正常手段)。
而且我在网上都没找到这个所谓的“《C语言连续生成多个随机数》”,真想见识一下作者。
2019-04-12 10:13
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册: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
帖 子:1503
专家分:6593
注 册: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.031013 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved