如何编写一个将随机值插入整数堆栈的函数?
问题描述:
编写一个接受整数作为唯一参数的函数。抛出整数的异常小于1。函数 创建一个整数堆栈(通过使用泛型强制存储在堆栈中的类型!), 用随机整数(随机在0到99之间)填充堆栈,使得堆栈保持随机数整数等于传入的参数,并且 返回堆栈。如何编写一个将随机值插入整数堆栈的函数?
这是我的代码到目前为止,我是新手。如果你能帮助,我会很高兴
Console.WriteLine("ENTER A NUMBER");
int arg = Int16.Parse(Console.ReadLine());
if (arg < 1)
{
try
{
}
catch (System.IndexOutOfRangeException e)
{
throw new System.ArgumentOutOfRangeException("value must be more than 1");
}
Stack<int> mystack = new Stack<int>(arg);
Random rd = new Random();
if(arg > 1)
{
int rndnum = rd.Next(arg);
arg = mystack.Pop();
return
}
Console.ReadLine();
答
我想你要开始的是一个功能 - “编写接受整数作为其唯一的自变量的函数”
对我来说,看起来像:
ReturnType MyFunction(int argument) { ... }
...其中ReturnType
是函数的返回类型,并通过实际的实现替代...
需求。稍后在说明中告诉你返回类型应该是一堆整数。所以...
Stack<int> MyFunction(int argument) { ... }
您可能需要Console.ReadLine()来收集输入,以发送到函数。但是在描述中没有任何内容说明函数应该从控制台读取输入。所以对我来说,这意味着Console.ReadLine()应该在函数之外。
给一个想法,再次打开曲柄,并发布更新。
答
首先,这段代码的意思是:“什么也不做,如果是没有什么异常抛出另一个异常”
try
{
}
catch (System.IndexOutOfRangeException e)
{
throw new System.ArgumentOutOfRangeException("value must be more than 1");
}
当你需要的是“扔什么整数的例外是少比一个“。所以你必须throw
a new
Exception
如果数字低于1
。
当你实现你上面提到的将不再需要
Stack<int> mystack = new Stack<int>(arg);
Random rd = new Random();
if(arg > 1) // to check if the argument is invalid
{ // the program shouldn't execute if
} // arg is lower than 1
之后,看看Random
参考的行为,你说你需要0
和99
rd.Next(arg); // this is not generating a number between 0 and 99
之间的数字。此外,你不应该从堆栈中删除元素,你必须add
元素
mystack.Pop(); // removing from stack
然后返回堆栈。
答
catch块永远不会被输入。在try块中没有任何东西,程序不会崩溃=>它不会被捕获。
你现在的代码有什么问题? – Prescott 2011-05-01 21:56:58
如果是的话,您需要将其标记为家庭作业。你也可能想问一个具体的问题。没有人会在这里编码评论。 – 2011-05-01 21:58:24
您有具体问题吗?你有什么问题吗?请不要让我们必须弄清楚你的问题是什么。 – 2011-05-01 21:58:52