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循环可能是我解决问题最复杂的方式,但我很高兴我这样做,因为它教我如果遇到问题就重新评估我接近代码的方式。
答案 0 :(得分:0)
复制一份。 之后
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();
}