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