c#的三重循环查找水仙花数,但是结果闪退
int a,b,c=0,d;
for (a=1;a>9 ;a++ )
{
for (b = 9; b < 0; b--)
{
for (; ; )
{
c = Convert.ToInt32(Console.ReadLine());
if (c < 0) { break; }
Console.WriteLine(c);
if (a * 100 + b * 10 + c == a * a * a + b * b * b + c * c * c)
{
d = a * 100 + b * 10 + c;
Console.WriteLine("水仙花数为{0}", d);
Console.ReadLine();
}
Console.ReadLine();
}
Console.ReadLine();
}
Console.ReadLine();
}
尝试加了许多,console.readline();但是结果始终是闪退
如果是 Visual Studio,把这个设置关了。我这是英文版,你如果用的中文版自己按英文意思找下。
如果不是 VS 再说。另外,
ReadLine()
放在程序的最后才会在结束前等待,而且还得是在中间没有抛出异常的情况下。另外,你这个程序,循环条件错了。跟踪一下运行过程会发现根本没进循环去。
除了这种方式跟踪,也可以用调试模式,打断点+单步运行的方式来跟踪。
for (a = 1; a > 9; a++)
表示 a 初始为 1,但在a > 9
的情况下进入循环……很显然初始值就不满足条件,所以进不到循环。再去学习一下 for 循环该怎么写。