第五題

1.輸入n,,輸出可大可小的數字正方形矩陣,最外層是第一層數字爲1,要求同一層的數字相同,最內層爲輸入的n,詳見樣例

易知矩陣長度爲2*n-1。

從1開始覆蓋矩陣,後面的數會覆蓋前面的,每次長度減2就行了。

11111      11111        11111

11111—> 12221 —>  12221

11111      12221        12321

11111      12221        12221

11111      11111        11111

#include<stdio.h>  
int a[1000][1000];  
void main()  
{  
    int i,j,k=1,n;  
    printf("請輸出n的值 :");  
    scanf("%d",&n);  
    while(k<=n)  
    {  
        for(i=k;i<=2*n-k;i++)//最外層覆蓋賦值  
        {  
            for(j=k;j<=2*n-k;j++) //逐列往下賦值且值相同 
                a[i][j]=k;  
        }  
        k=k+1;//將值改爲覆蓋所需的值,並且把數組地址改變爲向內一層   
    }  
    for(i=1;i<=2*n-1;i++)//輸出正方形矩陣   
    {  
        for(j=1;j<=2*n-1;j++)  
            printf("%d ",a[i][j]);  
        printf("\n");  
    }  
} 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章