请问这个程序如何调试 输出1-30的不重复随机数中的5个数。

namespaceConsoleApplication4{classProgram{staticvoidMain(string[]args){intNum=5;//数目p... namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{ int Num = 5; //数目
private const int MaxValue = 30; //最大数
private const int MinValue = 1; //最小数
public int[] sort(int[] num)
{ int i,j ,temp;
int n = num.Length;
for (i = 0; i < n - 1; i++)
{ for (j = i + 1; j < n; j++)
   { if (num[i] > num[j])
{ temp = num[i];
num[i] = num[j]; // 数据交换
num[j] = temp;
}
} }
return num;
}
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; }}
public string getRandomNum(int num, int minValue, int maxValue)
{ Random ra = new Random(unchecked((int)DateTime.Now.Ticks));
string strNum = "";
int[] arrNum = new int[num];
int tmp = 0;
for (int i = 0; i <= num - 1; i++)
{ tmp = ra.Next(minValue, maxValue); //随机取数
arrNum[i] = getNum(arrNum, tmp, minValue, maxValue, ra); //取出值赋到数组中
}
this.sort(arrNum);
for (int i = 0; i <arrNum.Length; i++)
{ string s = Convert.ToString(arrNum[i]);
strNum = strNum + s + " "; }
return strNum; }
帮我分析下哪里出错了 怎么改? getNum 有问题吗
展开
 我来答
百度网友dbecaad78
2013-05-20 · TA获得超过2402个赞
知道大有可为答主
回答量:2592
采纳率:0%
帮助的人:1441万
展开全部
tmp = ra.Next(minValue, maxValue);
getNum(arrNum, tmp, minValue, maxValue, ra);

这句 你改成 return getNum(arrNum, tmp, minValue, maxValue, ra); 看下。。

其实应该有更好的思路 这个不用递归 其实会更好

群号:27499316
更多追问追答
追问
还是报错,您有更好的方式吗 ?
追答
直接报错?那你看下 有没有语法错误
草帽小子1_1
2013-05-20
知道答主
回答量:2
采纳率:0%
帮助的人:2166
展开全部
大哥 你这代码有点....
追问
怎么了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式