int sum = 1;
for (int i = 3; i <= 19; i = i + 2)
{
while (i > 0)
{ i = i * (--i); }
sum = sum + i;
}
Console.WriteLine("{0}",sum);
Console.ReadKey();作者: 李玉生 时间: 2012-10-4 09:01
int sum = 1;
for (int i = 3; i <= 19; i = i + 2)
{
while (i > 0)
{ i = i * (--i); }
sum += i;
}
Console.WriteLine("{0}",sum);
Console.ReadKey();
这样就能输出了,哈哈{:soso_e113:}作者: 杨进 时间: 2012-10-4 09:09
while (i > 0)
{ i = i * (--i); }
这是一个死循环,走不出来的作者: 陈顺亮 时间: 2012-10-4 09:26
死循环,走不到Console.ReadLine();这一步作者: 许波 时间: 2012-10-4 10:29
i>0?? i的初始值就大于0,虽然相乘完自减,但是运算后的i的值很大,自减1的话是走不出循环的作者: 赵雅晴 时间: 2012-10-4 10:53
因为for循环里i 的值是大于等于3的,这样的话while的条件语句就永远成立,就成了死循环了作者: 和志强 时间: 2012-10-4 11:06
while (i > 0)
{ i = i * (--i); }
是个死循环了作者: 何学强 时间: 2012-10-4 12:17
在for循环中i的值是大于等于3,所以在while循环里i的值永远不会小于0,
while (i > 0)
{ i = i * (--i); }
死循环作者: 邓艳秋 时间: 2012-10-4 12:48
死循环了呀。自减1和相乘相差很大的,这样自减1永远也减不到尽头哇。。。作者: 蔡嘉 时间: 2012-10-14 09:44
调试后发现,确实应该出不去while循环,但是狂按f11后,发现 i 好像溢出了,跳出了while循环,奇怪的是,溢出后的i又跑到了while循环里,最后,程序被按死了!
另外,发现程序未按照良好的编程习惯编写,while的右边括号未和左边括号对齐,写在了行尾!误导!