1

Visual C# Express を使用してhttp://projecteuler.net/problem=1を解決しようとしています。

コンソール アプリケーションを作成し、次のコードを記述しました。

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);
            }

        }
    }
}

出力が得られるかどうかをテストするだけです。これがこの問題を解決するための最良の方法であるかどうかはわかりません。コンソール ウィンドウは 1 秒間だけ開き、その後消えます。どうすればこれを修正できますか?

4

8 に答える 8

3

を使用して修正できますConsole.ReadKey()。一般に、これが発生するコンソール アプリでは (サポートできる場合はお勧めしませんが... コンソールは既存のコマンド ラインから実行される傾向があり、完了したらすぐに終了し、ターミナルのコンテキストに戻ることが期待されます)。 )、次のように表示されます。

Console.WriteLine("press any key to exit...");
Console.ReadKey();
于 2013-03-25T16:28:39.133 に答える
2

試す

Console.ReadKey();

ループの後

于 2013-03-25T16:29:46.120 に答える
2

で試すこともできますReadLine method

Console.ReadLine();

リンク: http://msdn.microsoft.com/fr-fr/library/system.console.readline.aspx

于 2013-03-25T16:34:58.697 に答える
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();
        }
    }
}
于 2013-03-25T16:56:38.113 に答える
0

Ctrl + F5 を押すとPress any key to continue...、コンソールが自動的に閉じられなくなります。

Debugまたは、ツールバーの に移動して をクリックすることもできますStart Without Debugging

この解決策により、プロジェクトにコードを追加できなくなります。

于 2013-03-25T16:47:22.747 に答える
0

問題は、ループが終了した後、アプリケーションが終了する (コンソールが閉じる) ことです。コンソールを開いたままにするには、次のいずれかを実行できます。

  1. だけではなくctrl+を押してデバッガーなしでアプリケーションを起動すると、プログラムが終了する直前にが表示されます。F5F5Press any key to continue . . .

  2. 私にとって、デバッガーを使用してこれを行う最善の方法は、ブレークポイント ( F9) をメソッドの閉じ括弧に追加するmainことです。

プログラムのデバッグに役立つコードを追加することは、私にとって悪い習慣です。

于 2013-03-25T16:37:36.007 に答える
0

デバッガーが停止するように最後の行にブレークポイントを配置するか、ユーザー入力が必要になるように ReadLine のような呼び出しを追加するか、Windows が数秒間表示されたままになるように遅延 (スリープ) を追加するか、コマンド プロンプトから実行することができます。 .

于 2013-03-25T16:33:50.727 に答える
0

操作が多すぎる

if (i / 3 == 0)
   sum+=i;

そして、他の人が言ったように、

 Console.ReadKey()

結果を表示します。

于 2013-03-25T16:34:31.587 に答える