| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 603 人关注过本帖
标题:求助此代码出现的一些问题
只看楼主 加入收藏
axaxzzzzzz
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2013-5-8
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:8 
求助此代码出现的一些问题
输入了以下代码到VC6.0
#include <stdio.h>
   #include <stdlib.h>
   #include <time.h>

   int main(void)
   {
       int i,n;
       int m,j,k;
       time_t t;
       srand((unsigned) time(&t));
       printf("Three random numbers from 111 to 666\n\n");
       for (n=0; n<100; n++)
       while(n<=100)
       { m=rand()%6+1;
       j=rand()%6+1;
       k=rand()%6+1;
       for (i=0; i<100; i++)
       printf("%d,%d,%d\n", m,j,k);
       return 0;
   }
   }
为什么最后出来的100个随机数都是一样的?
搜索更多相关主题的帖子: include numbers return 
2013-05-08 18:57
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:0 
代码有点奇怪,是显示100组随机数吗?下面的循环显示100组1,1,1到6,6,6的随机数:
       for (n=0; n<100; n++)
       {
           m=rand()%6+1;
           j=rand()%6+1;
           k=rand()%6+1;
           printf("%d,%d,%d\n", m,j,k);
       }
2013-05-08 19:04
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:10 
回复 楼主 axaxzzzzzz
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
       int i,n; 
       int m,j,k;
       time_t t;
       srand((unsigned)time(NULL));
       printf("Three random numbers from 111 to 666\n\n");
       for (n=0; n<100; n++)
       //while(n<=100)
       { 
       m=rand()%6+1;
       j=rand()%6+1;
       k=rand()%6+1;
       //for (i=0; i<100; i++)
       printf("%d,%d,%d\n", m,j,k);
       }
       return 0;
}

这个程序生成的全是1到6之间的数 , 可是看程序好像是要生成111到666之间的数吧! lz自己改吧;

[ 本帖最后由 笑傲 于 2013-5-8 19:08 编辑 ]
收到的鲜花
  • axaxzzzzzz2013-05-08 19:17 送鲜花  2朵   附言:好文章

练就一身本领,只为笑傲江湖!
2013-05-08 19:06
axaxzzzzzz
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2013-5-8
收藏
得分:0 
m j k三个数都是从1到6里选择 范围肯定在111-666里面,就是想显示100组随机数,由m,j,k组成,m、j、k分别从1-6选择
2013-05-08 19:08
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:0 
回复 4楼 axaxzzzzzz
。。。。。。。。。。。。。。。。。

练就一身本领,只为笑傲江湖!
2013-05-08 19:10
axaxzzzzzz
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2013-5-8
收藏
得分:0 
回复 3楼 笑傲
谢谢,要的就是这个,不知道一开始那个为什么出来的都一样
2013-05-08 19:11
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:10 
for (i=0; i<100; i++)
           printf("%d,%d,%d\n", m,j,k);
因为随机后m,j,k,然后你用一个循环100次的重复输出这几个数,所以会一样啊!
还有你的for (n=0; n<100; n++)
       while(n<=100)
有重复嫌疑,这样只会增加处理的时间,降低效率,修改了下:
#include <stdio.h>
   #include <stdlib.h>
   #include <time.h>

   int main(void)
   {
       int i,n=0;
       int m,j,k;
       time_t t;
       srand((unsigned) time(&t));
       printf("Three random numbers from 111 to 666\n\n");
       while(n<=100)
       {
           m=100*(rand()%6)+1;
           j=100*(rand()%6)+1;
           k=100*(rand()%6)+1;
           printf("%d,%d,%d\n", m,j,k);
           n++;
         return 0;
       }
   }


[ 本帖最后由 邓士林 于 2013-5-8 20:01 编辑 ]

Maybe
2013-05-08 19:24
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:0 
回复 7楼 邓士林
你的return 0在while中则只能输出一次;
还有你的n没有初始化;
另外个人觉得你的代码不可能全是111到666;
至少有可能出现1;
我认为应该改为:
j = 111 + rand()%555;
这种形式;
说的不对请多包涵;

练就一身本领,只为笑傲江湖!
2013-05-08 19:51
axaxzzzzzz
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2013-5-8
收藏
得分:0 
玩三个筛子,玩100次随机出现什么数,我要的正好是3楼代码
2013-05-08 22:09
快速回复:求助此代码出现的一些问题
数据加载中...
 
   



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

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