2016-11-04 73 views
0

我一直在試圖解決以下鏈接如下問題:C#運行時錯誤

https://www.urionlinejudge.com.br/judge/en/problems/view/1010

這是我的代碼:

using System; 

namespace URIProblemsBeginner { 

class Program 

{ 
    static void Main(string[] args) 
    { 
     int PRODUCT_ONE_CODE, PRODUCT_TWO_CODE, PRODUCT_ONE_UNITS, PRODUCT_TWO_UNITS; 
     float PRODUCT_ONE_PRICE, PRODUCT_TWO_PRICE, VALUE_TO_PAY; 

     PRODUCT_ONE_CODE = Convert.ToInt32(Console.ReadLine()); 
     PRODUCT_ONE_UNITS = Convert.ToInt32(Console.ReadLine()); 
     PRODUCT_ONE_PRICE = Convert.ToSingle(Console.ReadLine()); 
     PRODUCT_TWO_CODE = Convert.ToInt32(Console.ReadLine()); 
     PRODUCT_TWO_UNITS = Convert.ToInt32(Console.ReadLine()); 
     PRODUCT_TWO_PRICE = Convert.ToSingle(Console.ReadLine()); 

     VALUE_TO_PAY = (PRODUCT_ONE_UNITS * PRODUCT_ONE_PRICE) + (PRODUCT_TWO_UNITS * PRODUCT_TWO_PRICE); 

     Console.WriteLine("VALOR A PAGAR: R$ " + VALUE_TO_PAY.ToString("F2")); 
     Console.ReadLine(); 
    } 
} 

每當我正在測試該代碼它在Visual Studio 2015中運行時沒有任何錯誤。但是,無論何時將它提交給URI編譯器,它都不會接受我的答案,並且會產生運行時錯誤。 我不確定是否有錯誤?

任何人都可以請幫忙嗎?提前致謝!

+0

登錄您的異常在調試模式做一個構建和追趕在嘗試捕捉異常。如果您使用的是有效輸入,則可能不使用正確的目標,就像任何CPU,32位,64位一樣。 –

回答

0

根據問題的陳述......

輸入文件包含兩行數據。在每行中將會有 3個值:兩個整數和一個浮點值,在小數點後有兩位數字。

...但是你寫的應用程序將尋找六行數據。一行代表產品一代碼,一行代表產品一代價格等。

我相信你想要的方法是讀一行並將其分成三部分。一些沿着以下的線。

using System;

namespace URIProblemsBeginner 
{ 
    internal class Program 
    { 
    private static void Main(string[] args) 
    { 
     int PRODUCT_ONE_CODE, PRODUCT_TWO_CODE, PRODUCT_ONE_UNITS, PRODUCT_TWO_UNITS; 
     float PRODUCT_ONE_PRICE, PRODUCT_TWO_PRICE, VALUE_TO_PAY; 

     ConvertInput(Console.ReadLine(), out PRODUCT_ONE_CODE, out PRODUCT_ONE_UNITS, out PRODUCT_ONE_PRICE); 
     ConvertInput(Console.ReadLine(), out PRODUCT_TWO_CODE, out PRODUCT_TWO_UNITS, out PRODUCT_TWO_PRICE); 

     VALUE_TO_PAY = (PRODUCT_ONE_UNITS*PRODUCT_ONE_PRICE) + (PRODUCT_TWO_UNITS*PRODUCT_TWO_PRICE); 

     Console.WriteLine("VALOR A PAGAR: R$ " + VALUE_TO_PAY.ToString("F2")); 
     Console.ReadLine(); 
    } 

    private static void ConvertInput(string input, out int CODE, out int UNITS, out float PRICE) 
    { 
     string[] split = input.Split(' '); 
     CODE = Convert.ToInt32(split[0]); 
     UNITS = Convert.ToInt32(split[1]); 
     PRICE = Convert.ToSingle(split[2]); 
    } 
} 

}

+0

是的,但是你沒有詳細說明你在VS中運行時輸入的內容。如果您在六條獨立的線路上輸入您的數據,並且URI編譯器僅提供兩行數據,那麼您當然會看到不同的結果。看看輸入樣本......你是否在一行上輸入「12 1 5.30」? – dazedandconfused

+0

OP詢問他爲什麼可能在網站上得到運行時錯誤,但不在VS中。如果URI進程提供2行輸入數據,並且他的代碼中有6個Console.ReadLine命令,看起來像是可能導致運行時錯誤的東西。如果我錯了,我錯了,但鑑於提供的信息,我仍然認爲這是一個合理的假設。 – dazedandconfused