2013-08-20 101 views
0

我試圖在C#中做項目歐拉問題#4。我遇到的問題是,當代碼運行控制檯窗口時,會短暫出現,然後消失。我不知道問題可能是什麼,因爲我對編程比較陌生。項目歐拉在C#4#

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      for (int i = 1000; i > 100; i--) 
       for (int j = 1000; j > 100; j--) 
        PalCheck(i * j); 
     } 

     static void PalCheck(int original) 
     { 
      var reversed = new string(Convert.ToString(original).ToCharArray().Reverse().ToArray()); 

      if (Convert.ToString(original) == reversed) 
       Console.WriteLine(original); 

      Console.ReadKey(); 
     } 
    } 
} 
+0

你想要發生什麼?什麼是可以使問題發生/消失的最小程序?如果在程序結束之前等待用戶輸入,該怎麼辦? (「按任意鍵繼續...」)? – Floris

+0

我想寫它的兩個三位數字的最大回文。 (因此從10​​00X1000開始並倒計時)行Console.ReadKey();應等待用戶輸入。 – TheDezzick

+0

你有沒有試過用多個斷點調試器來了解發生了什麼? –

回答

1

代碼似乎在線路 Console.ReadKey()作爲被卡在這行代碼,該程序正在等待某些輸入鍵。 由於您在ReadKey()之前沒有使用過任何消息,因此您沒有意識到程序正在等待某些輸入並且沒有被卡住。

在PalCheck(i * j)後移動Console.ReadKey(),您應該在控制檯屏幕上看到輸出。

+0

在Palcheck(i * j)後移動Console.ReadKey()返回三位數字產品的所有迴文列表。它解決了控制檯出現問題,但沒有給我答案。 – TheDezzick

+0

如果你想在第一次有效檢查之後停下來,你需要確保你只在滿足if語句後才執行'ReadKey' - 使用'{}'... – Floris

+0

我在if語句中添加了括號,將Console.GetKey()行放在括號內。現在每當我點擊一個鍵時它就會返回一個迴文。按幾次鍵後我會看到正確的答案,但這不是第一個結果。 – TheDezzick