日期:2014-05-19  浏览次数:20829 次

关于溢出处理的问题
using   System;
class   Factorial
{
    public   static   void   Main(string[]   args)
    {
      long   nFactorial=1;
      long   nComputerto=Int64.Parse(args[0]);
      long   nCurDig=1;
      for(nCurDig=1;nCurDig <=nComputerto;nCurDig++)
                  checked{nFactorial*=nCurDig;}
      Console.WriteLine( "{0}!Is{1} ",nComputerto,nFactorial);
  }
}

这是一个计算阶乘的例子,程序运行后报错了,我不明白   long   nComputerto=Int64.Parse(args[0]);这句是什么意思....

还有这个数组没有赋值啊,所以long   nComputerto应该也没有值啊,为什么会造成溢出呢?

不好意思,我初学,还望大家多多关照!谢谢啦!

------解决方案--------------------
long nComputerto=Int64.Parse(args[0]);
---------------------------------
args[0] 是用户在Cmd命令后添加的参数:比如exe 30

些时的nComputerto = 30;
------解决方案--------------------
你应该在命令行下运行这个程序

如果你是在VS2005的环境中,请点击菜单

项目 -- [你的项目名]属性 -- 调试 -- 启动选项 -- 命令行参数 后面输入一个值