CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

问个菜鸟级的问题!如何生成随机数

楼主jblues(寻找猫的老鼠)2005-04-02 20:36:56 在 C/C++ / C++ 语言 提问

VC的win32编程中  
  如何在mine[9][9]这个数组中随机选择十个数,而且不能重复选择  
  问题点数:20、回复次数:8Top

1 楼kobefly(科比--网络学习中)回复于 2005-04-02 20:38:48 得分 5

#include   <stdlib.h>  
  #include   <stdio.h>  
  #include   <time.h>  
   
  void   main(   void   )  
  {  
  int   i;  
  /*   Seed   the   random-number   generator   with   current   time   so   that  
  ·     the   numbers   will   be   different   every   time   we   run.  
          */  
  srand(   (unsigned)time(   NULL   )   );  
  /*   Display   10   numbers.   */  
  for(   i   =   0;       i   <   10;i++   )  
  printf(   “     %6d\n”,   rand()   );  
  }  
  Top

2 楼horisly(SUN YAT-SEN UNIVERSITY (逸仙先生))回复于 2005-04-03 04:09:14 得分 0

reTop

3 楼arrowcy(长弓手)回复于 2005-04-03 11:06:54 得分 0

好像这个不满足要求吧?Top

4 楼arrowcy(长弓手)回复于 2005-04-03 11:11:20 得分 5

int   a[10];  
  int   i,j;  
  for   (i=0;i<10;i++)  
      a[i]=rand()%(100-i);  
  for   (i=1;i<10;i++)  
      for   (j=0;j<i;j++)  
          if(a[i]>a[j])  
              a[i]++;  
  //以上程序在a[i]中产生了10个0-99之间的不同的随机数  
  x=a[i]/10;y=a[i]%10;  
  //这个x,y就分别对应于mine的二维,这样就可以用mine[x][y]来得到你要的数了Top

5 楼arrowcy(长弓手)回复于 2005-04-03 11:11:49 得分 0

上面那个a[i]>a[j]改为a[i]>=a[j]Top

6 楼shine51151(美丽心情)回复于 2005-04-03 12:13:07 得分 10

//   VC的win32编程中   如何在mine[9][9]这个数组中  
   
  //   随机选择十个数,而且不能重复选择。  
   
  #include   <iostream>  
  #include   <cstdlib>  
  #include   <time.h>  
  using   namespace   std;  
   
  #define   M   9  
  #define   N   10  
   
   
  void   main()  
  {  
         
  int   mine[M][M],a[N];  
   
  int   t=1,   m,   n;  
   
  for(int   i=0;   i<M;   i++)  
  for(int   j=0;   j<M;   j++)  
  mine[i][j]=t++;        
  //   初始化二维数组mine[M][M],每个元素都不为0。  
   
   
   
  srand(   (unsigned)time(   NULL   )   );    
  /*    
  Seed   the   random-number   generator   with   current   time   so   that  
  the   numbers   will   be   different   every   time   we   run.  
  */  
   
   
  for(int   k=0;   k<N;   k++)  
  {  
  m=rand()%M;      
  n=rand()%M;      
  //   产生两个0到(M-1)的随机整数作为二维数组mine[][]的下标。  
   
  if(!mine[m][n])  
  {  
  k--;  
  continue;  
  }  
  //   如果这次选择的数和前面的重复了,即该数已经被选过一次了,则重新选取。  
       
   
  a[k]=mine[m][n];  
  //   将选定的数存入一维数组  
   
  mine[m][n]=0;  
  //   将二维数组mine[][]中已被选过的元素置0作为不能再选的标记。  
  /*      
  注:这里的标记数mark的选择只要满足mark不是mine[][]的  
  任一元素的初始化时的值即可。  
  */  
  }  
   
  for(int   s=0;   s<N;   s++)  
  {  
  cout   <<   a[s]   <<   endl;  
  //   输出在mine[][]中随机选出的10个数。  
  }  
   
  }Top

7 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-04-03 12:18:28 得分 0

先srand(),   再rand()。Top

8 楼jblues(寻找猫的老鼠)回复于 2005-04-05 18:55:43 得分 0

已经解决  
  以下是我的代码,谢谢各位  
          //生成不重复的10个随机数,生成10个地雷所在位置  
  int   k,l;  
   
  k=0;  
  l=0;  
          for   (k=0;k<9;k++)  
        for   (l=0;l<9;l++)  
  {  
      mine[k][l]=0;  
      mineno[k][l]=0;  
      mineok[k][l]=false;  
  }  
   
          int   x,y;  
  int   a[10];  
  x=0;  
  y=0;  
  for(x=0;x<10;x++)  
  a[x]=0;  
   
          x=0;  
  srand(   (unsigned)time(   NULL   )   );  
  for(   x   =   0;x   <   10;x++   )  
        {  
  a[x]=rand()%81+1;  
  k=a[x]/10;  
  l=a[x]-10*k;  
  mine[k][l]=1;  
  if(x!=0)  
  {  
        for(y=0;y<x;y++)  
        {  
      if(a[x]==a[y])  
          x=x-1;  
      else  
      {  
      k=a[x]/10;  
      l=a[x]-10*k;  
      mine[k][l]=1;  
      }  
                        }      
                  }    
   
        }Top

相关问题

  • 生成随机数
  • 如何生成随机数?
  • 如何生成随机数?
  • 生成4位随机数
  • 用vba生成随机数
  • 求生成随机数的算法
  • 请教如何生成随机数
  • 探讨:随机数生成算法
  • 讨论随机数生成问题
  • 生成随机数的问题。

关键词

  • win32编程
  • 选择
  • mine
  • numbers
  • include
  • time

得分解答快速导航

  • 帖主:jblues
  • kobefly
  • arrowcy
  • shine51151

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo