我试图修改下面的代码,因此列中的每个第一个数字都基于行号。
int i, sum = 0;
for (int row = 0; row < 7; row++)
{
for (i = 1; i < 6; i++)
{
sum = sum + i;
Console.Write("{0} ", i);
}
Console.WriteLine(sum);
sum = 0;
}
Console.Read();
在控制台中显示:
1 2 3 4 5 15
1 2 3 4 5 15
1 2 3 4 5 15
1 2 3 4 5 15
1 2 3 4 5 15
1 2 3 4 5 15
1 2 3 4 5 15
但我尝试这样:
1 2 3 4 5 sum
2 3 4 5 6 sum
3 4 5 6 7 sum
4 5 6 7 8 sum
and so on..
......
....
关于如何解决这个问题的任何想法?
答案 0 :(得分:7)
将内循环更改为
for (int i = row + 1; i < row + 6; i++)
答案 1 :(得分:1)
替换
sum = sum + i;
Console.Write("{0} ", i);
在这里输入代码
与
number = number + row
sum = sum + number;
Console.Write("{0} ", number);
这样您可以使用变量行来跟踪行的起始编号。
答案 2 :(得分:0)
如果您不需要控制台语句而只需要总和,则可以不使用内部循环并且:
sum = Enumerable.Sum(Enumerable.Range(row+1, 5));
这是LINQ
或者,如果您需要控制台声明:
Enumerable.Range(row+1, 5).ToList().ForEach(c => sum += c; Console.Write(c));