C語言編程如何實(shí)現(xiàn)輸出一個回型遞增的N階矩陣(螺旋矩陣)-創(chuàng)新互聯(lián)

首先,說到輸出矩陣無論什么水平的人都會認(rèn)為使用數(shù)組最為方便,所以這里說明的是利用多維數(shù)組的實(shí)現(xiàn)。

創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對營銷、技術(shù)、服務(wù)都有自己獨(dú)特見解,公司采取“創(chuàng)意+綜合+營銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時,也能得到同行業(yè)的專業(yè)認(rèn)可,能夠?yàn)樾袠I(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級,滿足企業(yè)一站式營銷型網(wǎng)站建設(shè)需求,讓再小的品牌網(wǎng)站設(shè)計(jì)也能產(chǎn)生價值!

首先是算法需要的變量定義

int i,j,n,sum;
printf("請輸入矩陣的行列長度:\n");
scanf("%d",&n);
int juzhen[n][n];
memset(juzhen,0,sizeof(juzhen));
sum=1;

其次就是核心算法,此程序核心在于如何寫入元素到定義的數(shù)組中,要實(shí)現(xiàn)回型的數(shù)據(jù)遞增,就必須使用不同的方法的輸入不同方向遞增的數(shù)據(jù);

還有這里要注意數(shù)組的定義,是從0號下標(biāo)開始填入元素(當(dāng)然從下標(biāo)為一的元素開始也是可以的,此方法類似不予說明);

另外在換方向輸入的時候還要注意前一方向已經(jīng)輸入數(shù)據(jù)的數(shù)組元素不能再輸入,于是使用if語句以區(qū)分是否填充過數(shù)據(jù)(這里需要提前將數(shù)組全部置零,使用了memset函數(shù),此函數(shù)需要頭文件string.h)。

這里定義了for語句實(shí)現(xiàn)的四種方向的輸入

for(i=0;i<n/2;i++)
   {
     for(j=0;j<n-1;j++)//向右
        {
            if(juzhen[i][j]==0)
            juzhen[i][j]=sum++;
        }
        for(j=i;j<n-1;j++)//向下
        {
            if(juzhen[j][n-1-i]==0)
                juzhen[j][n-1-i]=sum++;
        }
        for(j=n-i-1;j>i;j--)//向左
        {
            if(juzhen[n-1-i][j]==0)
            juzhen[n-1-i][j]=sum++;
        }
        for(j=n-1-i;j>i;j--)//向上
        {
            if(juzhen[j][i]==0)
                juzhen[j][i]=sum++;
        }

最后在對輸入的數(shù)字做區(qū)分,當(dāng)N階矩陣是一個偶數(shù)階的矩陣時沒有矩陣中心元素,但是奇數(shù)階矩陣有,語句如下

 if(n%2==1)
        juzhen[(n-1)/2][(n-1)/2]=sum++;

最后對數(shù)組進(jìn)行輸出

 for(i=0;i<=n-1;i++)
    for(j=0;j<=n-1;j++)
        {
            printf("%4d",juzhen[i][j]);
            if(j==n-1)
                printf("\n");
        }
完整源代碼如下
```

#include<string.h>

#include<stdio.h>

int main()
{
int i,j,n,sum;
printf("請輸入矩陣的行列長度:\n");
scanf("%d",&n);
int juzhen[n][n];
memset(juzhen,0,sizeof(juzhen));
sum=1;

for(i=0;i<n/2;i++)
{
  for(j=0;j<n-1;j++)//向右
    {
        if(juzhen[i][j]==0)
        juzhen[i][j]=sum++;
    }
    for(j=i;j<n-1;j++)//向下
    {
        if(juzhen[j][n-1-i]==0)
            juzhen[j][n-1-i]=sum++;
    }
    for(j=n-i-1;j>i;j--)//向左
    {
        if(juzhen[n-1-i][j]==0)
        juzhen[n-1-i][j]=sum++;
    }
    for(j=n-1-i;j>i;j--)//向上
    {
        if(juzhen[j][i]==0)
            juzhen[j][i]=sum++;
    }

}
        if(n%2==1)
        juzhen[(n-1)/2][(n-1)/2]=sum++;

for(i=0;i<=n-1;i++)
for(j=0;j<=n-1;j++)
    {
        printf("%4d",juzhen[i][j]);
        if(j==n-1)
            printf("\n");
    }

}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標(biāo)題名稱:C語言編程如何實(shí)現(xiàn)輸出一個回型遞增的N階矩陣(螺旋矩陣)-創(chuàng)新互聯(lián)
URL鏈接:http://www.bm7419.com/article48/ihohp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、定制網(wǎng)站、網(wǎng)站導(dǎo)航云服務(wù)器、網(wǎng)站內(nèi)鏈響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作