一道C#小程序题,有一个地方没明白!望各位大侠帮忙!
classProgram{staticvoidMain(string[]args){intsum=0,sum1=0;for(intj=1;j<=3;j++){for(in...
class Program
{
static void Main(string[] args)
{
int sum = 0, sum1 = 0;
for (int j = 1; j <= 3; j++)
{
for (int i = 1; i <= j; i++)
{
sum += i;
}
sum1 += sum;
}
Console.WriteLine("{0},{1}" ,sum,sum1);
Console.ReadKey();
}
}
这个程序题的结果是sum=10;sum1=15,请问是怎么得出来的 ,结果应该是sum=6,sum1=10才对啊,有点不懂!!麻烦大伙啦! 展开
{
static void Main(string[] args)
{
int sum = 0, sum1 = 0;
for (int j = 1; j <= 3; j++)
{
for (int i = 1; i <= j; i++)
{
sum += i;
}
sum1 += sum;
}
Console.WriteLine("{0},{1}" ,sum,sum1);
Console.ReadKey();
}
}
这个程序题的结果是sum=10;sum1=15,请问是怎么得出来的 ,结果应该是sum=6,sum1=10才对啊,有点不懂!!麻烦大伙啦! 展开
3个回答
2013-07-30
展开全部
j==1 的时候
i==1
sum=1
j==2 的时候
i==1
sum=1+1 = 2
i==2
sum=1+1 = 2+2 = 4
j==3 的时候
i==1
sum=4 + 1 = 5
i==2
sum=4 + 1 = 5 + 2 = 7
i==3
sum=4 + 1 = 5 + 2 = 7 + 3 = 10
sum1 = 1 + 4 + 10 = 15
更多追问追答
追问
您好,再麻烦您下,当j==2 的时候i的值不是已经自加到2了吗?为什么还要算一遍i==1呢?
追答
j 等于2的时候,要重复下面的循环
for (int i = 1; i <= j; i++)
上面这句 i 又一次被赋值为 1 了
所以就出现了
j==2 的时候
i==1
sum=1+1 = 2
i==2
sum=1+1 = 2+2 = 4
展开全部
当 j=1
i=1到 1
sum=1 sum1=1
当 j=2
i=1到 2
sum=1+3=4 sum1=5
当 j=3
i=1到 3
sum=4+6=10 sum1=10+5=15
注意 sum+=i; 他会累加所以得i
实际就是
sum=1+1+2+1+2+3=10
i=1到 1
sum=1 sum1=1
当 j=2
i=1到 2
sum=1+3=4 sum1=5
当 j=3
i=1到 3
sum=4+6=10 sum1=10+5=15
注意 sum+=i; 他会累加所以得i
实际就是
sum=1+1+2+1+2+3=10
追问
请在追问您一下,当 j=2 ,i=1到 2时,sum不是应该等于(1+2=3)吗?怎么能是4呢?
追答
j=1的时候的sum=1 还保留着啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,sum 与 sum1是这个函数的局部变量,每次for中的改动都会记录到下一次
第一个for j=1 通过 for i sum=1 第二个 for j=2 通过 for i sum 等于上一个 1 加上这次 1+2
结果是4 同理 当j=3时,sum=4+1+2+3=10;那么sum1=1+4+10=15
第一个for j=1 通过 for i sum=1 第二个 for j=2 通过 for i sum 等于上一个 1 加上这次 1+2
结果是4 同理 当j=3时,sum=4+1+2+3=10;那么sum1=1+4+10=15
追问
还想麻烦您下for (int i = 1; i <= j; i++)中i++起着什么作用呢?不应该是每次循环后i的值都自增1吗?就是说当j=2的时候应该跳过i=1这道程序了,而是i直接从2开始算起才对啊?
追答
每次j 递增时,i从1开始
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询