问题描述
- 大神帮看看几行C#,为什么写的位置不一样,最终求得的和却相差这么多。
-
求1到100的整数和:
int a = 1, sum = 0;
while (a <= 100)
{
sum = sum + a;
a++;
** if (a++ == 100)
{
Console.WriteLine("1到100之间整数的和是{0}。", sum);
}**
}
Console.WriteLine("1到100之间整数的和是{0}。", sum);
粗体部分和斜体部分:用粗体,结果是2500,用斜体,结果是5050。为啥会这样啊。刚初学,麻烦大神们答疑解惑,非常感谢。
解决方案
a++;
** if (a++ == 100)
a又++了
解决方案二:
你在if判断里边每次都多加了1啊
解决方案三:
多了一个a++;
改为:
int a = 1, sum = 0;
while (true)
{
sum = sum + a;
if (a++ > 100)
{
Console.WriteLine("1到100之间整数的和是{0}。", sum);
}
}
或者:
int a = 1, sum = 0;
while (a <= 100)
{
sum = sum + a;
a++;
}
Console.WriteLine("1到100之间整数的和是{0}。", sum);
解决方案四:
多了一个a++;
改为:
int a = 1, sum = 0;
while (true)
{
sum = sum + a;
if (a++ > 100)
{
Console.WriteLine("1到100之间整数的和是{0}。", sum);
}
}
或者:
int a = 1, sum = 0;
while (a <= 100)
{
sum = sum + a;
a++;
}
Console.WriteLine("1到100之间整数的和是{0}。", sum);
解决方案五:
这样加法 每次都是自增2 1,3,5,7
解决方案六:
调用两次a++,导致自增2,sum=1+3+5+..+99 =2500
时间: 2024-11-01 12:41:36