关于溢出处理的问题
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的环境中,请点击菜单
项目 -- [你的项目名]属性 -- 调试 -- 启动选项 -- 命令行参数 后面输入一个值