【问题标题】:how to Write a new calculator to accept a variable number of arguments [closed]如何编写一个新的计算器来接受可变数量的参数[关闭]
【发布时间】:2019-08-22 06:02:12
【问题描述】:

编写一个新的计算器来接受可变数量的参数。 计算器将按如下方式启动:

C:\>calc.exe + 2 3 6 12

【问题讨论】:

  • 很棒的功课,现在你需要查看params 命令行参数、arrays 以及如何使用 LINQ SkipSum 并且很可能是switch声明
  • 计算器代码是你写的吗?你面临什么问题?
  • 它是一个接受波兰符号的完整计算器吗?它只是一个运算符然后是一个数字序列吗?到目前为止你有什么代码?
  • 我只是编写代码来获取两个数字的输入

标签: c# .net calculator


【解决方案1】:

我会让 容错和其他一切由你来决定

public static void Main(string[] args)
{
  switch (args[0])
  {
      case "+":
         Console.WriteLine(args.Skip(1)
                               .Select(int.Parse)
                               .Sum());
         break;
  ...

【讨论】:

  • @Senthuja 我害怕这个。它需要一些命令行参数,测试第一个参数是否为 +,然后使用 Linq 遍历其余参数(跳过第一个参数),将它们全部转换为 int 并将它们全部相加
  • 是的,当然。谢谢
【解决方案2】:
 int [] Number = new int[args.Length -1];

        for (int i = 0; i < args.Length - 1; i++) {
            int num;
            int.TryParse(args[i + 1], out num);
            Number[i] = num;
        }

        int result;

        int.TryParse(args[1], out result);

            switch (args[0])
            {
                case "+":

                    for (int i = 1; i < Number.Length; i++)
                    {
                       result = result - Number[i];
                    }

                    Console.WriteLine(result);
                    break;
                case "-":

                    for (int i = 1; i < Number.Length; i++)
                    {
                       result = result - Number[i];
                    }

                    Console.WriteLine(result);
                    break;
                case "*":

                    for (int i = 1; i < Number.Length; i++)
                    {
                       result = result * Number[i];
                    }

                    Console.WriteLine(result);
                    break;


                case "/":

                    for (int i = 1; i < Number.Length; i++)
                    {
                       result = result - Number[i];
                    }

                    Console.WriteLine(result);
                    break;

                default:
                    Console.WriteLine("Invalid code");
                    break;

            }

            Console.ReadKey();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2013-05-07
    • 1970-01-01
    相关资源
    最近更新 更多