91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言編程如何實現輸出一個回型遞增的N階矩陣(螺旋矩陣)

發布時間:2020-08-11 22:08:13 來源:網絡 閱讀:2129 作者:sonissa 欄目:編程語言

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

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

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

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

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

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

這里定義了for語句實現的四種方向的輸入

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++;
        }

最后在對輸入的數字做區分,當N階矩陣是一個偶數階的矩陣時沒有矩陣中心元素,但是奇數階矩陣有,語句如下

        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");
        }
完整源代碼如下
```

#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");
    }

}

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗江县| 响水县| 灵丘县| 桦南县| 云南省| 三门峡市| 漳平市| 长治市| 平乡县| 韩城市| 建始县| 东海县| 麻江县| 溧水县| 黑水县| 洮南市| 女性| 扬中市| 白朗县| 平谷区| 射阳县| 建阳市| 清新县| 紫阳县| 石景山区| 如东县| 杭州市| 张家港市| 东台市| 桦南县| 台南市| 玛曲县| 红河县| 浙江省| 康乐县| 城固县| 台州市| 江川县| 徐州市| 东源县| 托克逊县|