Каждая из 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();
}
В функциях SumD
, SumM
и SumY
надо возвращать sum
, а не d
, m
и y
.
Я, прстите, не пишу на диезах, но алгоритм в трех экземплярах - это нечто...
Что мешает:
- сделать единую ф-цию 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 - не имел дела :)
Но суть-то ясна, имо ... .
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Возможно ли написать Service (службу) на чистом C? Дали задание написать службу на чистом С, на вопрос почему не на С#, потому что надо ставить frameworkМожет...
мне необходимо получить данные из TextBox на форме