static void Main(string[] args)
{
int x = 1;
int sum = 0;
while (x <= 30)
{
if (x % 2 == 1)
Console.WriteLine(x);
sum = sum + x;
x++;
}
Console.WriteLine("1~30的奇数之和为:"+sum );
}
Console.WriteLine(x);这一行加上去结果是错误的,如果注释掉结果才正确,这是为什么呢?
2 回答

陆云帆
TA贡献7条经验 获得超0个赞
没有任何问题你的if作用域有问题,应该这样写:
int x = 1; int sum = 0; while (x <= 30) { if (x % 2 == 1) { Console.WriteLine(x); sum = sum + x; } x++; } Console.WriteLine("1~30的奇数之和为:" + sum);
这个Console.WriteLine(x)只是把中间结果打印了而已,没任何作用。
这种程序用C#写当然要体现C#的优势,给你一种简单的解决方案:
var sum = (from num in Enumerable.Range(0, 31) where num % 2 == 1 select num).Sum(); Console.WriteLine("1~30的奇数之和为:" + sum);
两行搞定。
- 2 回答
- 1 关注
- 2285 浏览
添加回答
举报
0/150
提交
取消