我正在尝试使用Visual C#Express解决http://projecteuler.net/problem=1。
我创建了一个Console Application并编写了以下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Euler_1
{
class Program
{
static void Main(string[] args)
{
int num = 0;
int sum = 0;
for (int i = 0; i <= 10; i++)
{
if (num / 3 == 0)
sum = sum + num;
num++;
System.Console.WriteLine(num);
}
}
}
}
只是为了测试我是否可以获得任何输出。我不确定这是否是解决此问题的最佳方法。控制台窗口仅打开一秒钟然后消失。我该如何解决这个问题?
答案 0 :(得分:3)
您可以使用Console.ReadKey()
进行修复。通常,在发生这种情况的控制台应用程序中(虽然如果你可以帮助它我永远不推荐它...控制台往往是从现有的命令行运行,并且预计在完成后立即退出,返回到终端的上下文),你看到这样的事情:
Console.WriteLine("press any key to exit...");
Console.ReadKey();
答案 1 :(得分:2)
尝试
Console.ReadKey();
循环之后
答案 2 :(得分:2)
您也可以尝试使用ReadLine method
Console.ReadLine();
link:http://msdn.microsoft.com/fr-fr/library/system.console.readline.aspx
答案 3 :(得分:0)
您可以在最后一行放置一个断点,以便调试器停止,添加一个类似ReadLine的调用,以便需要用户输入,添加一个延迟(Sleep),以便Windows保持显示几秒钟或从命令提示符。
答案 4 :(得分:0)
操作太多
if (i / 3 == 0)
sum+=i;
正如其他人所说,
Console.ReadKey()
会让你看到结果。
答案 5 :(得分:0)
问题是应用程序在循环结束后终止(控制台关闭)。要使控制台保持打开状态,您可以执行以下操作之一:
如果您通过按 ctrl + F5 而不是 F5 启动没有调试器的应用程序,您将看到{{ 1}}就在程序退出之前。
对我来说,最好的方法使用调试器是将断点( F9 )添加到Press any key to continue . . .
的结束括号中方法
添加额外的代码来帮助您调试程序对我来说是一个坏习惯。
答案 6 :(得分:0)
Ctrl + F5将为您留下Press any key to continue...
这将阻止控制台自动关闭。
或者,您可以转到工具栏中的Debug
,然后点击Start Without Debugging
。
此解决方案将阻止向项目添加代码。
答案 7 :(得分:0)
这里是干净的代码,包含其他人提到的所有更改。主要是模数(参见%)和Console.ReadKey
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Euler
{
class Program
{
static void Main(string[] args)
{
const int max = 10;
int sum = 0;
for (int i = 0; i < max; i++)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
Console.WriteLine("The sum of all multiples of 3 and 5 from 0 to {0} is: {1}", max, sum);
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
}