A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小周学诚 中级黑马   /  2013-7-23 22:09  /  1531 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



  Random ra=new Random(unchecked((int)DateTime.Now.Ticks));
  int[] arrNum=new int[10];
  int tmp=0;
  int minValue=1;
  int maxValue=10;
  for (int i=0;i<10;i++)
  {
    tmp=ra.Next(minValue,maxValue); //随机取数
    arrNum=getNum(arrNum,tmp,minValue,maxValue,ra); //取出值赋到数组中
  }

  public int getNum(int arrNum,int tmp,int minValue,int maxValue,Random ra)
  {
    int n=0;
    while (n<=arrNum.Length-1)
    {
      if (arrNum[n]==tmp) //利用循环判断是否有重复
      {
        tmp=ra.Next(minValue,maxValue); //重新随机获取。
        getNum(arrNum,tmp,minValue,maxValue,ra);//递归:如果取出来的数字和已取得的数字有重复就重新随机获取。
      }
    n++;
    }
    return tmp;
  }

评分

参与人数 1技术分 +1 收起 理由
zhangcheng5468 + 1 以后的代码尽量用代码格式显示,这样看着太.

查看全部评分

5 个回复

倒序浏览
public int getNum(int arrNum,int tmp,int minValue,int maxValue,Random ra)
你这个方法第一个参数的类型是int,而你却传入一个数组。
 int[] arrNum=new int[10];
 arrNum=getNum(arrNum,tmp,minValue,maxValue,ra); //取出值赋到数组中


回复 使用道具 举报
int[] arrNum=new int[10];
整形数组,
 public int getNum(int arrNum,int tmp,int minValue,int maxValue,Random ra)
获取整数,
你看看是不是你的类型混淆了
回复 使用道具 举报
额 看不懂 帮你顶一下吧{:soso_e113:}
回复 使用道具 举报
看不太懂 ,还没学到C#里数组的表示,
猜测是这里出错了吧:
arrNum=getNum(arrNum,tmp,minValue,maxValue,ra); //取出值赋到数组中
是不是应该这样:
arrNum[i]=getNum(arrNum,tmp,minValue,maxValue,ra); //取出值赋到数组中//赋值给数组中第i+1个元素(C#数组下标是从0开始吗?)
getNum()里面是这里:
while (n<=arrNum.Length-1)
换成:
while (n<=arrNum[n].Length-1)
回复 使用道具 举报
public int getNum(int arrNum,int tmp,int minValue,int maxValue,Random ra)
arrNum=getNum(arrNum,tmp,minValue,maxValue,ra);
int[] arrNum=new int[10];
方法的第一个参数是Int,而你传入的arrNum是一个整型数组。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马