2011-05-01 45 views
0

编写一个接受整数作为唯一参数的函数。抛出整数的异常小于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(); 
+0

你现在的代码有什么问题? – Prescott 2011-05-01 21:56:58

+0

如果是的话,您需要将其标记为家庭作业。你也可能想问一个具体的问题。没有人会在这里编码评论。 – 2011-05-01 21:58:24

+0

您有具体问题吗?你有什么问题吗?请不要让我们必须弄清楚你的问题是什么。 – 2011-05-01 21:58:52

回答

0

我想你要开始的是一个功能 - “编写接受整数作为其唯一的自变量的函数

对我来说,看起来像:

ReturnType MyFunction(int argument) { ... } 

...其中ReturnType是函数的返回类型,并通过实际的实现替代...需求。稍后在说明中告诉你返回类型应该是一堆整数。所以...

Stack<int> MyFunction(int argument) { ... } 

您可能需要Console.ReadLine()来收集输入,以发送到函数。但是在描述中没有任何内容说明函数应该从控制台读取输入。所以对我来说,这意味着Console.ReadLine()应该在函数之外。

给一个想法,再次打开曲柄,并发布更新。

0

首先,这段代码的意思是:“什么也不做,如果是没有什么异常抛出另一个异常”

try 
{ 
} 
catch (System.IndexOutOfRangeException e) 
{ 
    throw new System.ArgumentOutOfRangeException("value must be more than 1"); 
} 

当你需要的是“扔什么整数的例外是少比一个“。所以你必须throw a newException如果数字低于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参考的行为,你说你需要099

rd.Next(arg); // this is not generating a number between 0 and 99 

之间的数字。此外,你不应该从堆栈中删除元素,你必须add元素

mystack.Pop(); // removing from stack 

然后返回堆栈。

0

catch块永远不会被输入。在try块中没有任何东西,程序不会崩溃=>它不会被捕获。

相关问题