Поэтому для практики я решил попытаться создать программу C#, которая вычисляет сумму отдельных цифр заданного значения (например, если бы я должен был ввести число 123, сумма должна быть 6, потому что 1 + 2 + 3. добавьте каждый отдельный номер в список, а затем найдите сумму этого списка, чтобы получить мой ответ. Однако, когда я делаю это, как показано в приведенном ниже коде:
static void Main(string[] args)
{
int num;
int sumOfNum = 0;
List<int> numbersToAdd = new List<int>();
Console.WriteLine("insert number: ");
num = Convert.ToInt32(Console.ReadLine());
string myNum = num.ToString();
for (int i = 0; i < myNum.Length; i++)
{
numbersToAdd.Add(myNum[i]);
}
foreach (int n in numbersToAdd)
{
sumOfNum = numbersToAdd.Sum();
}
Console.WriteLine("the sum is " + sumOfNum);
}
Вместо вывода равно 6, мой вывод вместо 150. Я подумал, что это странно, поэтому, когда я решил выполнить итерацию список, чтобы я мог видеть свои значения, как показано ниже:
foreach (int n in numbersToAdd)
{
Console.WriteLine(n);
}
Вместо того, чтобы получать значения 1, 2 и 3, вместо этого я получаю 49, 50, 51.
Почему в том, что? Это из-за того, что я отправляю индекс строки вместо реального int? И если так, как я могу это исправить?