实际上这个程序执行了以下几步:
1.i=1时,此时j是从1到i(=1)循环的,k从j(=1)到3循环的,语句n=n+1执行了3次
2.i=2时,此时j是从1到i(=2)循环的
    j=1时,k从j(=1)到3循环的,语句n=n+1执行了3次
    j=2时,k从j(=2)到3循环的,语句n=n+1执行了2次
3.i=3时,此时j是从1到i(=3)循环的,
    j=1时,k从j(=1)到3循环的,语句n=n+1执行了3次
    j=2时,k从j(=2)到3循环的,语句n=n+1执行了2次
    j=3时,k从j(=3)到3循环的,语句n=n+1执行了1次
所以最后语句n=n+1执行的次数为:3+(3+2)+(3+3+2+1)=14。 不知我讲的够不够清楚。

解决方案 »

  1.   

    前面多敲了一个3,应该是:
    实际上这个程序执行了以下几步:
    1.i=1时,此时j是从1到i(=1)循环的,k从j(=1)到3循环的,语句n=n+1执行了3次
    2.i=2时,此时j是从1到i(=2)循环的
        j=1时,k从j(=1)到3循环的,语句n=n+1执行了3次
        j=2时,k从j(=2)到3循环的,语句n=n+1执行了2次
    3.i=3时,此时j是从1到i(=3)循环的,
        j=1时,k从j(=1)到3循环的,语句n=n+1执行了3次
        j=2时,k从j(=2)到3循环的,语句n=n+1执行了2次
        j=3时,k从j(=3)到3循环的,语句n=n+1执行了1次
    所以最后语句n=n+1执行的次数为:3+(3+2)+(3+2+1)=14。 
      

  2.   

    假设l初值为1,那么
      For i=1 to 3  '第一次,i=1
          for j=1 to i  'for j=1 to 1,只运行一次。j=1.
            for k=j to 3   'k=1 to 3,运行三次
              n=n+1   'n没有符初值,为一随机值。假设n=0,三次过后,n=3
            next k   'k=4时退出
          next j    'j=2时退出
        next i     'i=2,进行第二次运算
      
       For i=1 to 3  '第二次,i=2
          for j=1 to i  'for j=1 to 2,只运行2次。第一次,j=1.
            for k=j to 3   'k=1 to 3,运行三次
              n=n+1   'n现在为3,三次过后,n=6
            next k
          next j
        next i   For i=1 to 3  '第二次,i=2
          for j=1 to i  'for j=1 to 2,只运行2次。第2次,j=2.
            for k=j to 3   'k=2 to 3,运行2次
              n=n+1   'n现在为6,2次过后,n=8
            next k
          next j     'next j 后j=3,for j=1 to 2这一循环不再运行。
        next i       'next i ,i=3   For i=1 to 3  '第3次,i=3
          for j=1 to i  'for j=1 to 3,运行3次。第1次,j=1.
            for k=j to 3   'k=1 to 3,运行3次
              n=n+1   'n现在为8,3次过后,n=11
            next k
          next j     'next j 后j=2,for j=1 to 3这一循环运行第2次。
        next i     For i=1 to 3  '第3次,i=3
          for j=1 to i  'for j=1 to 3,运行3次。第2次,j=2.
            for k=j to 3   'k=2 to 3,运行2次
              n=n+1   'n现在为11,2次过后,n=13
            next k
          next j     'next j 后j=3,for j=1 to 3这一循环运行第3次。
        next i           For i=1 to 3  '第3次,i=3
          for j=1 to i  'for j=1 to 3,运行3次。第3次,j=3.
            for k=j to 3   'k=3 to 3,运行1次
              n=n+1   'n现在为13,1次过后,n=14
            next k
          next j     'next j 后j=4,for j=1 to 3这一循环退出。
        next i       'next i 后i=4,退出最后n=3+(3+2)+(3+2+1)=14
          
      

  3.   

    你的n在循环中被每次都被付值,在第一次i、j循环n得知已经为3了也就是说下i次循环的循环n的初值没有被清零,而是上次循环的末值!
    你最好设两个变量!