我正在用C#编写代码并试图在数字1和N之间添加所有数字,N是在文本框中输入的数字。我这样做,至少试图这样做,把它放进一个while循环。
之前我已经在2个文本框之间添加了所有数字,但出于某种原因,我让自己疯了,无法解决这个问题。我是一名初学者,所以请保持温和。
非常感谢任何帮助。
编辑: 我试过的六千件事之一。我认为这让我处于无限循环中?
private void btnAddAll_Click(object sender, EventArgs e)
{
int n;
int count = 0;
int answer = 0;
n = int.Parse(txtNum.Text);
count = n;
while (count >= 1)
{
answer = answer + count;
count++;
}
lstShow.Items.Add("Sum = " + answer);
lstShow.Text = answer.ToString();
}
答案 0 :(得分:8)
为什么不使用高斯公式。 (N *(N + 1))/ 2
private void btnAddAll_Click(object sender, EventArgs e)
{
int n, answer;
n = int.Parse(txtNum.Text);
answer = (n*(n+1))/2;
lstShow.Items.Add("Sum = " + answer);
lstShow.Text = answer.ToString();
}
答案 1 :(得分:3)
您的编辑:您应该减少计数..
另一个编辑,似乎我需要解释更多:
通过减量,我的意思是--
。 post或pre decrement运算符将值减1。
如果计数持续增加1,则永远不会满足 count> = 1 。您需要将计数减少为1 ..因此count--;
另外,我建议您使用TryParse(string,out int) ;
或至少将Parse
电话打包在try catch block
。
这是伪代码中的指针:
GetInput From User
TryParse Input
If Between 1 and N
Declare sum = 1;
for i to N-1
sum+=i;
/* if you don't want to use the for loop
while i < N
sum+=i;
inc i; */
Print sum
答案 2 :(得分:1)
如果您将++
更改为--
,则应该按照您的意愿进行操作。
int n;
int count = 0;
int answer = 0;
n = 3;
count = n;
while (count >= 1)
{
answer = answer + count;
count--; // here was the error
}
Console.WriteLine (answer);
输出:6
此外,只是为了一个额外的兴趣,你可以使用它使用Enumerable.Range和Enumerable.Sum而不是while循环(可能超出了预期的功课,但知道什么是有用的是有用的有)。
answer = Enumerable.Range(1, n).Sum();
答案 3 :(得分:0)
调试是任何程序员的重要技能。 Visual Studio中有一些很好的工具可以帮助调试。
在遇到问题时调试代码的好方法是使用“断点”并逐步执行代码。
选择您希望代码停在的行(例如n = int.Parse(txtNum.Text);
)并按F9 - 这将在此行添加断点。
现在,当您运行程序时,它将在断点处停止。如果按F11,则可以一次“逐步”执行代码。您可以将鼠标悬停在变量上,以便在执行此操作时查看其值。
如果您这样做,您将很快在代码中找到问题。