2016-11-04 4 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 개의 값이 있습니다. 두 개의 정수와 소수점 뒤에 두 자리가있는 부동 소수점 값이 있습니다.

... 그러나 작성한 애플리케이션은 6 행의 데이터를 검색합니다. 제품 코드 한 줄, 제품 한 가격 한 줄 등

원하는 방법은 한 줄을 읽고 세 가지 구성 요소로 나누는 것입니다. 뒤에 오는 것의 선에 따라서 무언가.

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