日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

蛇形方陣詳細分析【經(jīng)典之得一看哈】 - - JavaEye技術(shù)網(wǎng)站

 guitarguy 2011-01-03

蛇形方陣詳細分析【經(jīng)典之得一看哈】

文章分類:C++編程

1.#include<stdio.h>

void main()

{

       int i,j,a[100][100],n,k;

       printf("請輸入列數(shù)n= ");

       scanf("%d",&n);

       k=1;

       for(i=1;i<=n;i++)

              for(j=1;j<=i;j++) //每一層輸入 i 個元素,故j<=i.

              {

              a[i+1-j][j] = k; //在內(nèi)循環(huán),并且與j有關(guān)。

//i層的第一個數(shù)的橫坐標為i+1-j,然后隨著j++而橫坐標漸漸斜上輸入,

                        //數(shù)組第二個下標以 j 作為基值,隨著j++縱坐標向右延伸。

                     k++;

              }

              for(i=1;i<=n;i++)

              {

                     printf("\n");

                     for(j=1;j<=n+1-i;j++) //每一行輸出 n+1-i 個元素

                            printf("%4d",a[i][j]);

              }

       printf("\n");

}

 

2 代碼:與上一個程序相比只僅僅改變了:a[i+1-j][j] > a[j][i+1-j].

 

#include<stdio.h>

void main()

{

       int i,j,a[100][100],n,k;

       printf("請輸入列數(shù)n= "); 

  scanf("%d",&n);

k=1;

       for(i=1;i<=n;i++)

              for(j=1;j<=i;j++)

              {

                     if(i%2==0)   a[i+1-j][j]=k;

                  else         a[j][i+1-j]=k;           

                     k++;

              }

              for(i=1;i<=n;i++)

              {

                     printf("\n");

                     for(j=1;j<=n+1-i;j++)

                  printf("%4d",a[i][j]);

              } 

     printf("\n"); 

 }

 

5、代碼:

#include<stdio.h>

void main()

{

       int i,j,a[100][100],n,k;

       printf("請輸入列數(shù)n= ");

       scanf("%d",&n);

       k=1;

//輸出上三角

       for(i=1;i<=n;i++)

              for(j=1;j<=i;j++)

              {

                     if(i%2==0)  a[i+1-j][j]=k;

                  else        a[j][i+1-j]=k;          

                     k++;

              }

//輸出下三角

     for(i=n+1;i<2*n;i++)

               for(j=1;j<=2*n-i;j++)

          {

                     if(i%2==0)  a[n+1-j][i-n+j]=k;   //n+1在這里是定值了

                  else        a[i-n+j][n+1-j]=k;       

                     k++;

              }

 

              for(i=1;i<=n;i++)

              {

                     printf("\n");

                     for(j=1;j<=n;j++)

                            printf("%4d",a[i][j]);

              }

       printf("\n");

}

 

 

6、代碼:只是把上面5代碼中兩個地方交換位置

#include<stdio.h>

void main()

{

       int i,j,a[100][100],n,k;

       printf("請輸入列數(shù)n= ");

       scanf("%d",&n);

       k=1;

       for(i=1;i<=n;i++)

              for(j=1;j<=i;j++)

              {

                     if(i%2==0)  a[j][i+1-j]=k;

                  else        a[i+1-j][j]=k;         

                     k++;

              }

     for(i=n+1;i<2*n;i++)

               for(j=1;j<=2*n-i;j++)

          {

                     if(i%2==0)   a[i-n+j][n+1-j]=k;

                  else         a[n+1-j][i-n+j]=k;      

                     k++;

              }

              for(i=1;i<=n;i++)

              {

                     printf("\n");

                     for(j=1;j<=n;j++)

                     printf("%4d",a[i][j]);

              }

       printf("\n");

}

 

 

 

 

 

 

 

 

 

 

 

#include<stdio.h>

void main()

{

       int i,j,a[100][100],n,k;

       printf("請輸入列數(shù)n= ");

       scanf("%d",&n);

       k=1;

       for(i=1;i<=n;i++)

              for(j=1;j<=i;j++)          

{

                     a[j][i+1-j]=k;        

       k++;

              }

              for(i=1;i<=n;i++)

              {

                     printf("\n");

                     for(j=1;j<=n+1-i;j++) //每一行輸出 n+1-i 個元素

                            printf("%4d",a[i][j]);

              }

       printf("\n");

}

 

3、代碼:與上一個相比加了一個奇偶數(shù)層的if判斷,這正好就是“拐點”的關(guān)鍵!

#include<stdio.h>

void main()

{

       int i,j,a[100][100],n,k;

       printf("請輸入列數(shù)n= ");

       scanf("%d",&n);

       k=1;

       for(i=1;i<=n;i++)

              for(j=1;j<=i;j++)

              {

                     if(i%2==0)  a[j][i+1-j]=k;

                  else        a[i+1-j][j]=k;          

                     k++;

              }

              for(i=1;i<=n;i++)

              {

                     printf("\n");

                     for(j=1;j<=n+1-i;j++)

                            printf("%4d",a[i][j]);

              }

       printf("\n");

}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多