c#运行时错误

本文关键字:运行时错误 | 更新日期: 2023-09-27 18:16:17

我一直在尝试解决以下问题在以下链接:

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编译器,它不接受我的答案,并给出一个运行时错误。我不确定是否有一个bug或没有?

有人能帮忙吗?提前感谢!

c#运行时错误

根据问题陈述…

输入文件包含两行数据。每一行都有3个值:两个整数和一个浮点值,后面有2位数字小数点。

…但是您编写的应用程序将寻找六行数据。一行产品一码,一行产品一价,等等

我相信你想要的方法是阅读一行并将其分成三个部分。以下内容

使用系统;

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

}

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)
    {
        List<string> split = input.Split(' ').ToList();
        string[] changedInput =new string[3];
        for (int i = 3 - split.Count; i <= 3; i++)
        {
            split.Add("0");
            if (split.Count ==3 )
            {
                break;
            }
        }
        int.TryParse(split[0], out CODE);
        int.TryParse(split[1], out UNITS);
        float.TryParse(split[2], out PRICE);
    }
}