Добавление чисел типа int? - PullRequest
0 голосов
/ 06 мая 2020
public static int addIntNumbers()
{
    int input = int.Parse(Console.ReadLine());
    int sum = 0;
    while (input !=0)
    {        
        sum += input % 10;
        input /= 10;
        Console.WriteLine(sum);
    }

    return sum;
}

Я не понимаю этого синтаксиса: после условия while, sum += input % 10, что в основном означает sum = sum(which is 0) + input % 10, так что, допустим, я ввожу 24, так что сумма должна быть 4, я думаю?

А затем вторая строка, которую я даже не знаю, что она делает.

Есть предложения?

Ответы [ 3 ]

0 голосов
/ 06 мая 2020

Ваш код вычисляет di git -by-di git сумму целого числа (сумма положительная, если ввод положительный, отрицательный, если ввод отрицательный). Если вы C# новичок, это может вам помочь:

    while (input !=0)
    {

        sum = sum + (input % 10); //sum = sum + remainder of division by ten (separation of least significant digit)
        input = input / 10; //input is integer-divided by ten, which results in discarding of the least significant digit
        Console.WriteLine(sum);
    }

Если вы не понимаете, познакомьтесь с разницей между 4/6 и 4.0/6. Первый - целочисленное деление, второй - деление с плавающей запятой.

0 голосов
/ 06 мая 2020

Некоторые вещи, которые помогут вам понять, что здесь происходит:

Во-первых, если вы работаете в Visual Studio, вы можете установить точку останова в своем коде, щелкнув слева от номера строки в маржа. Появится красная точка, и когда ваш код достигнет этой точки, он приостановится. Во время паузы вы можете посмотреть на вкладку «Локальные» или навести указатель мыши на имена переменных в коде, чтобы увидеть, какие значения находятся в данный момент времени. Затем вы можете использовать F10 для перехода на одну строку вперед и посмотреть, как все меняется.

Во-вторых, оператор / = аналогичен оператору + =, за исключением деления. Итак, «x / = 10» - это то же самое, что «x = x / 10».

Эта программа суммирует каждое di git введенного вами числа, получая единицы di git, добавив его к сумме, затем разделив число на 10, чтобы избавиться от старых di git.

0 голосов
/ 06 мая 2020

Лучше всего добавлять комментарии. Однако я уже могу сказать, что тот, кто это написал, не знал, что делает. Во-первых, комментариев не было, названия ужасны, а ввод / вывод фактически обрабатывается внутри функции.

//The name is not right. This is not a proper sum function
//I think it is getting a sum of all digits in the input
public static int addIntNumbers()
{
    //Get a input from the user, parse it to int
    //That really belons outside. Just the int in per argument
    int input = int.Parse(Console.ReadLine());
    //Initialize sum to 0
    int sum = 0;

    //Input is also used as sort of "running variable".
    //The loop will break if input reaches 0
    while (input !=0)
    {
        //sum = sum + input % 10
        //It tries to divide input by 10, get's the rest, then adds that rest to sum
        sum += input % 10;
        //Divide input by 10. Note that all decimal parts will be dropped
        //That means it will reach 0 invariably
        input /= 10;
        //Output the current sum for debugging
        Console.WriteLine(sum);
    }
    //The function returns
    return sum;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...