国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

回型矩陣|蛇形矩陣|上三角矩陣|矩陣轉(zhuǎn)置|二維數(shù)組打印問(wèn)題

這篇具有很好參考價(jià)值的文章主要介紹了回型矩陣|蛇形矩陣|上三角矩陣|矩陣轉(zhuǎn)置|二維數(shù)組打印問(wèn)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一. 二維數(shù)組與矩陣打印

二. 回型矩陣

1.題目

2.思路分析

3.代碼實(shí)現(xiàn)

三. 蛇形矩陣

1.題目

2.思路分析

3.代碼實(shí)現(xiàn)

四. 上三角矩陣

1.題目

2.思路分析

3.代碼實(shí)現(xiàn)

五. 矩陣轉(zhuǎn)置

1.題目

2.思路分析

3.代碼實(shí)現(xiàn)

六. 總結(jié)


一. 二維數(shù)組與矩陣打?。?/h2>

二維數(shù)組,作為一種存放一系列數(shù)的載體,不免和數(shù)學(xué)中用于存放數(shù)的數(shù)表——矩陣,有著密切的聯(lián)系。矩陣本身就有些抽象,需要設(shè)計(jì)一個(gè)程序精準(zhǔn)打印出來(lái)更是有難度,所以今天便來(lái)總結(jié)一些二維數(shù)組與矩陣打印的問(wèn)題該如何解決。

(題目取自??途W(wǎng)BC133-BC138)


二. 回型矩陣

1.題目:

BC133 回型矩陣

描述

給你一個(gè)整數(shù)n,按要求輸出n?n的回型矩陣

輸入描述:

輸入一行,包含一個(gè)整數(shù)n

1<=n<=19

輸出描述:

輸出n行,每行包含n個(gè)正整數(shù).

示例1

輸入:4
輸出:1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

2.思路分析:

用java實(shí)現(xiàn)給你一個(gè)整數(shù)n,按要求輸出n n的回型矩陣,要求執(zhí)行時(shí)間為1秒,c語(yǔ)言,矩陣,Powered by 金山文檔
  • 分為內(nèi)循環(huán)與外循環(huán):外循環(huán)每循環(huán)一次就是打印一圈,逐次朝里,邊界不斷縮??;內(nèi)循環(huán)分為4個(gè),每個(gè)循環(huán)就是圖中劃分的(同色為一組)先從左向右、再?gòu)纳舷蛳隆⒃購(gòu)挠蚁蜃?、再?gòu)南孪蛏洗蛴。?/p>

  • 外循環(huán)的注意點(diǎn)1——循環(huán)終止條件:start<over(找規(guī)律得出的,這種通常都是找規(guī)律得出的,最好奇數(shù)偶數(shù)的情況都試一下,再下結(jié)論);

  • 外循環(huán)的注意點(diǎn)2——循環(huán)變量的改變:每循環(huán)一次:start++,over--(也是找規(guī)律得到的);

  • 內(nèi)循環(huán)的注意點(diǎn):開始和結(jié)束,用start和over表示,要仔細(xì)考慮;

  • 奇數(shù)的最后一個(gè)數(shù),是start=over的情況,不被包含在循環(huán)里,所以要補(bǔ)在最后。


3.代碼實(shí)現(xiàn):

#include <stdio.h>
int main()
{
	int n, i, j, step = 1,arr[20][20] = { 0 };
	scanf("%d", &n);
    int  start = 0, over = n - 1;//對(duì)第一次循環(huán)的起始和終止條件,進(jìn)行初始化;
	
    //主體部分:原因詳見(jiàn)上方的分析;
    while (start < over)//外循環(huán):每循環(huán)一次就打印一圈,逐次朝里,邊界不斷縮??;
	{
		//內(nèi)循環(huán)分為4個(gè),先從左向右、再?gòu)纳舷蛳?、再?gòu)挠蚁蜃?、再?gòu)南孪蛏洗蛴。?        for (j = start; j <= over; j++)
		{
			arr[start][j] = step;
			step++;
		}
		for (i = start + 1; i <= over; i++)
		{
			arr[i][over] = step;
			step++;
		}
		for (j = over - 1; j >= start; j--)
		{
			arr[over][j] = step;
			step++;
		}
		for (i = over - 1; i > start; i--)
		{
			arr[i][start] = step;
			step++;
		}
		start++;
		over--;
	}
    
    //奇數(shù)補(bǔ)的那種start=over的情況:
	if (n % 2)
	{
		arr[over][over] = n * n;
	}

    //把排好的矩陣打印出來(lái):
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

三. 蛇形矩陣

1.題目:

BC134 蛇形矩陣

描述

給你一個(gè)整數(shù)n,輸出n?n的蛇形矩陣。

輸入描述:

輸入一行,包含一個(gè)整數(shù)n

輸出描述:

輸出n行,每行包含n個(gè)正整數(shù),通過(guò)空格分隔。

1<=n<=1000

示例1

輸入:4
輸出:1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16

2.思路分析:

用java實(shí)現(xiàn)給你一個(gè)整數(shù)n,按要求輸出n n的回型矩陣,要求執(zhí)行時(shí)間為1秒,c語(yǔ)言,矩陣,Powered by 金山文檔
  • 首先,這個(gè)矩陣的排列,剛開始會(huì)覺(jué)得有些抽象,有點(diǎn)難以下手,所以需要從一些簡(jiǎn)單的例子中尋找總結(jié)出規(guī)律,所以畫圖找下標(biāo)關(guān)系很重要?。。?/p>

  • 規(guī)律1:連續(xù)的幾個(gè)行列坐標(biāo)和相同,且這個(gè)和不斷增長(zhǎng);

  • 規(guī)律2:和為奇數(shù)的都是行下標(biāo)從0到和的值,而和為偶數(shù)的都是行下標(biāo)從和的值到0;

  • 規(guī)律3:下標(biāo)和大于等于n時(shí),下標(biāo)標(biāo)不再是從0開始,但可以確定的是行/列的上限是n-1,另一個(gè)通過(guò)和減來(lái)得出;

  • 終止條件:arr[n-1][n-1];


3.代碼實(shí)現(xiàn):

#include <stdio.h>

int main()
{
    int n, i, j, step = 2, sum = 1, arr[1000][1000] = { 0 };
    scanf("%d", &n);
    arr[0][0] = 1;
    while (sum < n)
    {
        if (sum % 2)
        {
            for (i = 0; i <= sum; i++)
            {
                arr[i][sum-i] = step;
                step++;
            }
        }
        else
        {
            for (i = sum; i >= 0; i--)
            {
                arr[i][sum-i] = step;
                step++;
            }
        }
        sum++;
    }
    while (sum <= 2 * (n - 1))
    {
        if (sum % 2)
        {
            for (i = sum-n+1; i <= n-1; i++)
            {
                arr[i][sum-i] = step;
                step++;
            }
        }
        else
        {
            for (i = n - 1; i >= sum - n + 1; i--)
            {
                arr[i][sum-i] = step;
                step++;
            }
        }
        sum++;
    }
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
        {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
        return 0;
}

四. 上三角矩陣

1.題目:

BC136 KiKi判斷上三角矩陣

描述

KiKi想知道一個(gè)n階方矩是否為上三角矩陣,請(qǐng)幫他編程判定。上三角矩陣即主對(duì)角線以下的元素都為0的矩陣,主對(duì)角線為從矩陣的左上角至右下角的連線。

輸入描述:

第一行包含一個(gè)整數(shù)n,表示一個(gè)方陣包含n行n列,用空格分隔。 (2≤n≤10)
從2到n+1行,每行輸入n個(gè)整數(shù)(范圍-231~231-1),用空格分隔,共輸入n*n個(gè)數(shù)。

輸出描述:

一行,如果輸入方陣是上三角矩陣輸出"YES"并換行,否則輸出"NO"并換行。

示例1

輸入:3
1 2 3
0 4 5
0 0 6
輸出:YES

示例2

輸入:4
1 2 3 4
5 6 7 8
9 0 11 12
13 0 0 16
輸出:NO

2.思路分析:

用java實(shí)現(xiàn)給你一個(gè)整數(shù)n,按要求輸出n n的回型矩陣,要求執(zhí)行時(shí)間為1秒,c語(yǔ)言,矩陣,Powered by 金山文檔
  • 這題規(guī)律比較容易看出來(lái),主要思路是遍歷下三角區(qū)域(即該為零的區(qū)域),這個(gè)區(qū)域就是j<i的情況。


3.代碼實(shí)現(xiàn):

#include <stdio.h>

int main() 
{
    int n,i,j,flag=1,arr[10][10]={0};
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            scanf("%d",&arr[i][j]);
        }
    }
    for(i=1;i<n;i++)
    {
        for(j=0;j<i;j++)
        {
            if(arr[i][j]!=0)
            {
                flag=0;
                break;
            }
        }
    }
    if(1==flag)
    {
        printf("YES\n");
    }
    else
    {
        printf("NO\n");
    }
    return 0;
}

五. 矩陣轉(zhuǎn)置

1.題目:

BC138 矩陣轉(zhuǎn)置

描述

KiKi有一個(gè)矩陣,他想知道轉(zhuǎn)置后的矩陣(將矩陣的行列互換得到的新矩陣稱為轉(zhuǎn)置矩陣),請(qǐng)編程幫他解答。

輸入描述:

第一行包含兩個(gè)整數(shù)n和m,表示一個(gè)矩陣包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)
從2到n+1行,每行輸入m個(gè)整數(shù)(范圍-231~231-1),用空格分隔,共輸入n*m個(gè)數(shù),表示第一個(gè)矩陣中的元素。

輸出描述:

輸出m行n列,為矩陣轉(zhuǎn)置后的結(jié)果。每個(gè)數(shù)后面有一個(gè)空格。

示例1

輸入:2 3
1 2 3
4 5 6
輸出:1 4
2 5
3 6

2.思路分析:

用java實(shí)現(xiàn)給你一個(gè)整數(shù)n,按要求輸出n n的回型矩陣,要求執(zhí)行時(shí)間為1秒,c語(yǔ)言,矩陣,Powered by 金山文檔
  • 這題也比較簡(jiǎn)單,規(guī)律就是i,j互換。


3.代碼實(shí)現(xiàn):

#include <stdio.h>

int main() 
{
    int n,m,i,j,matrix_T[10][10]={0};
    scanf("%d %d",&n,&m);
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%d",&matrix_T[j][i]);
        }
    }
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("%d ",matrix_T[i][j]);
        }
        printf("\n");
    }
    return 0;
}

六. 總結(jié):

用二維數(shù)組打印矩陣的問(wèn)題

①難點(diǎn):抽象,難以入手;

②解決方法:畫簡(jiǎn)單情形的圖(具象化),分奇數(shù)偶數(shù)兩種情形,從中尋找下標(biāo)間的規(guī)律,再利用循環(huán)來(lái)構(gòu)建程序進(jìn)行打??;所以從簡(jiǎn)單情形中,尋找總結(jié)規(guī)律是特別重要的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-775798.html

到了這里,關(guān)于回型矩陣|蛇形矩陣|上三角矩陣|矩陣轉(zhuǎn)置|二維數(shù)組打印問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包