C# 多个随机输入数之间的减法

C# 多个随机输入数之间的减法,c#,foreach,subtraction,C#,Foreach,Subtraction,我想让用户输入随机数示例:5-3-10-50 ,系统将拆分为“-”,然后结果为5 3 10 50 ,如何从第一个数减去第二个数等等, 就像这个5-3=2,2-10=-8,-8-50=-58 然后系统将打印最终答案-58 我的代码: bool Subtraction = true; int AskSubtraction = 0; while (Subtraction) { Console.Write("\n" + "input number ( exampl

我想让用户输入随机数示例:5-3-10-50 ,系统将拆分为“-”,然后结果为5 3 10 50 ,如何从第一个数减去第二个数等等, 就像这个5-3=2,2-10=-8,-8-50=-58 然后系统将打印最终答案-58

我的代码:

bool Subtraction = true;
int AskSubtraction = 0;

while (Subtraction)
{
    Console.Write("\n" + "input number ( example : 1 - 2 - 3 - 4 ) : ");
    var InputNumber = Console.ReadLine();
    double Answer = 0;

        foreach (var result in InputNumber.Split('-'))
        {
            if (double.TryParse(result, out _))
            {
                double NumberResult = Convert.ToDouble(result);
                Answer -= NumberResult;
            }
            else
            {
                Console.WriteLine("\n" + "Wrong input !");
                AskSubtraction++;
            }
        }

    Console.WriteLine("\n" + "subtraction result : " + Answer);
}

我知道我的代码是错误的,我是初学者,我已经尝试解决这个问题,但我现在还不能解决它,我希望有人告诉我我的代码出了什么问题,也能解决它,谢谢。

你的代码不起作用的原因是因为你设置了
Answer=0
。 您使用了foreach。在循环的第一次迭代中,从
Answer
中减去第一个数字,得到-5


使用
for(int i=1;i

在开始减法之前,您需要在foreach循环中设置一个条件来检查第一个解析的double。此外,由于double.TryParse()函数已返回已解析的双精度值,您只需要一个变量来包含
double.TryParse()函数的
out
值,请参见下面的示例

bool Subtraction = true;
int AskSubtraction = 0;

while (Subtraction)
{
    Console.Write("\n" + "input number ( example : 1 - 2 - 3 - 4 ) : ");
    var InputNumber = Console.ReadLine();
    double Answer = 0;
    double numResult;

    foreach (var result in InputNumber.Split('-'))
    {
        if (double.TryParse(result, out numResult))
        {
            if(Math.Abs(Answer)>0){
                Answer -= numResult;
            }
            else{
                Answer=numResult;
            }
        }
        else
        {
            Console.WriteLine("\n" + "Wrong input !");
            AskSubtraction++;
        }
    }

    Console.WriteLine("\n" + "subtraction result : " + Answer);
}