降序数C#
我能够编写这个程序的这一小段,以升序显示数字,但我仍然无法让它以降序显示 这个程序应该做的基本工作是以“from”和“To”的形式从用户处获取两个数值,并将其显示为列表框中的列表。用户选择升序还是降序取决于他选择了两个单选按钮中的哪一个降序数C#,c#,numbers,C#,Numbers,我能够编写这个程序的这一小段,以升序显示数字,但我仍然无法让它以降序显示 这个程序应该做的基本工作是以“from”和“To”的形式从用户处获取两个数值,并将其显示为列表框中的列表。用户选择升序还是降序取决于他选择了两个单选按钮中的哪一个 private void btnCalc_Click(object sender, EventArgs e) { double fromNum, toNum, total = 0; fromNum = doub
private void btnCalc_Click(object sender, EventArgs e)
{
double fromNum, toNum, total = 0;
fromNum = double.Parse(txtFrom.Text);
toNum = double.Parse(txtTo.Text);
lstResult.Items.Clear();
lblResult.Text = "";
if (radAsc.Checked)
{
while (fromNum <= toNum)
{
lstResult.Items.Add(fromNum);
total = total + fromNum;
fromNum++;
}
}
else
{
while (fromNum >= toNum)
{
lstResult.Items.Add(fromNum);
total = total + toNum;
toNum--;
}
}
lblResult.Text = total.ToString();
}
private void btnCalc\u单击(对象发送者,事件参数e)
{
双倍fromNum,toNum,总计=0;
fromNum=double.Parse(txtFrom.Text);
toNum=double.Parse(txtTo.Text);
lstreult.Items.Clear();
lblResult.Text=“”;
如果(雷达检查)
{
while(fromNum=toNum)
{
lstreult.Items.Add(fromNum);
总计=总计+音调;
音调--;
}
}
lblResult.Text=total.ToString();
}
这是一个程序的图像。
注意:-我对C完全是新手,我刚开始在大学里学习它。你在减少错误的值
while (fromNum >= toNum)
{
lstResult.Items.Add(fromNum);
total = total + toNum;
toNum--;
}
所以,下面是你正在做的:
假设fromNum是10,toNum是1
在第一次迭代之后,fromNum仍然是10,但toNum是0。减小fromNum而不是toNum,它应该相应地工作
编辑
有几件事需要注意。如果total是收集所有数字的总和,那么一个简洁的方法是:
total=total+value代码>
是
total+=值代码>
在进入逻辑之前,您还应该验证这些数字是否实际有效。因此,如果选择单选按钮进行升序,您需要确保fromNum小于toNum,如果它们不是:
if(fromNum < toNum)
{ run logic .... }
else
{ alert user ... }
if(fromNum
我建议使用for
循环,而不是while
,这使得代码易于实现:
if (radAsc.Checked)
{
// num += 1: - I've seen odds/even switch on the screenshot
// so you may want to change/add num += 1 into num += 2
for (double num = fromNum; num <= toNum; num += 1) {
lstResult.Items.Add(num);
total = total + num;
}
}
else
{
// Descending order:
// - start from the bottom (toNum)
// - loop until the top (fromNum)
// - descend by 1 (num -= 1)
for (double num = toNum; num >= fromNum; num -= 1) {
lstResult.Items.Add(num);
total = total + num;
}
}
if(雷达检查)
{
//num+=1:-我在屏幕截图上看到了赔率/偶数切换
//因此,您可能需要将num+=1更改/添加到num+=2
for(双num=fromNum;num=fromNum;num-=1){
lstreult.Items.Add(num);
总数=总数+数量;
}
}
您正在递减音调(在递减逻辑中)。但fromNum总是按降序大于toNum,所以您创建了一个无休止的循环。您需要从num开始递减。请注意,您还应该包括一个检查,以确保升序时-fromNum大于toNum,降序时亦然。您好,我完全同意您的建议,以这种方式编写它显然是合乎逻辑的。但是我担心教授可能会对我学习编码的独立性不满意。我非常感谢您的精彩建议,我将在将来多次使用它。嘿,非常感谢您的精彩解释,它在理解我在代码中的错误方面帮助了我很多!