我需要一个程序来显示用户输入数字和这些数字的总和

时间:2015-01-26 06:47:26

标签: c#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DigitSum
{
class Program
{
    static void Main(string[] args)
    {
        int num, sum = 0, r;

        Console.WriteLine("Enter a Number : ");
        num = int.Parse(Console.ReadLine());

        while (num != 0)
        {
            r = num % 10;
            num = num / 10;
            sum = sum + r;
        }

        Console.WriteLine("The sum of the digits in the number: " + num + " is " + sum);
        Console.ReadLine();
    }
  }
}

此程序将采用用户输入编号(例如123)并将返回(编号中的数字总和:0为6)。

我需要知道如何更改代码以便程序输出(数字中的数字总和:123为6)。

编辑:感谢大家的所有投入。我实际上设法解决了我发布问题的那个晚上,但我确定其他人可以使用这个帮助。我最后保留了while循环,并在循环发生之前使用辅助变量保存了num的值。

之后我意识到,一个while循环可能是我解决问题最复杂的方式,但我很高兴我这样做,因为它教我如果遇到问题就重新评估我接近代码的方式。

5 个答案:

答案 0 :(得分:0)

你正在改变num。

复制一份。 之后

num = int.Parse(Console.ReadLine()); 

安全的副本

int numOutput = num;

并按

打印
Console.WriteLine("The sum of the digits in the number: " + numOutput + " is " + sum);

和另一个提示。当您使用字符串输出时,您可以这样做以获得更好的可读性:

Console.WriteLine("The sum of the digits in the number: {0} is {1}", numOutput, sum);

答案 1 :(得分:0)

制作num的副本,这样即使您需要在总结期间将其计算在内,您仍然可以在结尾处将其打印出来:

num = int.Parse(Console.ReadLine());
int originalNum = num;

// …

Console.WriteLine("The sum of the digits in the number: " + originalNum + " is " + sum);

答案 2 :(得分:0)

这种情况正在发生,因为您正在修改num循环中的while。您可以将num的值存储在int temp = num循环之前的另一个临时变量中,例如while。然后,在输出时,将num替换为

中的temp
Console.WriteLine("The sum of the digits in the number: " + num + " is " + sum);

答案 3 :(得分:0)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DigitSum
{
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter a Number : ");

        var num = Console.ReadLine();

        var sum = num.Select(c => int.Parse(c.ToString())).Sum();

        Console.WriteLine("The sum of the digits in the number: " + num + " is " + sum);
        Console.ReadLine();
    }
  }
}

答案 4 :(得分:0)

这可能会有所帮助。

static void Main()
{
     Console.WriteLine("Enter a Number : ");

     string input = Console.ReadLine();
     int num, sum = 0;

     if (int.TryParse(input, out num))
     {
         for (; num > 0; num = num / 10)
         {
             sum = sum + num % 10;
         }

         Console.WriteLine("The sum of the digits in the number: {0} is {1}", input, sum);
     }
     else { Console.WriteLine("Invalid number format."); }

     Console.ReadKey();
 }