Вывод в label сумму цифр числа

51
25 июня 2018, 12:40

Каждая из 3-х функций вычисляет сумму цифр чисел, которые выбираются из 3-х ComboBox-ов при нажатии на кнопку в Label4 отображается 0

     int SumD(int d)
    {
        int sum = 0;
        while (d > 0)
        {
            sum = sum + (d % 10);
            d = (d / 10);
        }
        return d;
    }
     int SumM(int m)
    {
        int sum = 0;
        while (m > 0)
        {
            sum = sum + (m % 10);
            m = (m / 10);
        }
        return m;
    }
     int SumY(int y)
    {
        int sum = 0;
        while (y > 0)
        {
            sum = sum + (y % 10);
            y = (y / 10);
        }
        return y;
    }
    private void button1_Click(object sender, EventArgs e)
    {
       int d, m, y, allsum;
        d = Convert.ToInt32(comboBox1.Text);
        y = Convert.ToInt32(comboBox2.Text);
        m = Convert.ToInt32(comboBox3.Text);
        allsum = SumD(d) + SumM(m) + SumY(y);
        label4.Text = allsum.ToString();
    }
Answer 1

В функциях SumD, SumM и SumY надо возвращать sum, а не d, m и y.

Answer 2

Я, прстите, не пишу на диезах, но алгоритм в трех экземплярах - это нечто...

Что мешает:
- сделать единую ф-цию SumDMY;
- внести Convert в ее скобки;
- объединить комбики в массив;
- проитерировать его, суммируя результаты,
- и выплюнуть результат куда хочется ...
???

Ну, примерно так на VB6:

Private Sub sb_CbxArr_Test()
Dim k&, lSum&
Dim sSum$
    lSum = 0
    With cbx_Arr
        For k = .LBound To .LBound
            lSum = lSum + fn_Sum(.Item(k).Text)
        Next ' k
    End With ' cbx_Arr
    sSum = CStr(lSum) ' or Format$(lSum, "your_mask")
    ' do any you want
End Sub
Private Function fn_Sum(pVal$) As Long
Dim lVal&, lSum&
    lVal = CLng(pVal) ' or Val(pVal)
    lSum = 0
    Do While (lVal > 0)
        lSum = lSum Mod 10
        lVal = lVal \ 10
    Loop
    fn_Sum = lSum
End Function

Если, конечно, я ничего не напутал:
- в операторах C# % и / --> VB6 Mod и \
- с комбобоксами VB6 - не имел дела :)

Но суть-то ясна, имо ... .

READ ALSO
Возможно ли написать Service (службу) на чистом C?

Возможно ли написать Service (службу) на чистом C?

Возможно ли написать Service (службу) на чистом C? Дали задание написать службу на чистом С, на вопрос почему не на С#, потому что надо ставить frameworkМожет...

34
Получить значения из TextBox в WPF с паттерном MVVM

Получить значения из TextBox в WPF с паттерном MVVM

мне необходимо получить данные из TextBox на форме

74
Явное преобразование типов

Явное преобразование типов

Создал несколько переменныхРешил поиграться с преобразованием типов:

31
Как работать с диапазоном дат

Как работать с диапазоном дат

Есть класс PersonОн водитель

37