第二屆_第一題_列印上三角矩陣
阿新 • • 發佈:2019-01-22
請你設計一個用於填充n階方陣的上三角區域的程式。填充的規則是:使用1,2,3….的自然數列,從左上角開始,按照順時針方向螺旋填充。
例如:當n=3時,輸出:
1 2 3
6 4
5
當n=4時,輸出:
1 2 3 4
9 10 5
8 6
7
當n=5時,輸出:
1 2 3 4 5
12 13 14 6
11 15 7
10 8
9
程式執行時,要求使用者輸入整數n(3~20)
程式輸出:方陣的上三角部分。
要求格式:每個資料寬度為4,右對齊。
#include<iostream> #include<cstdio> using namespace std; int a[50][50]; int main() { int n,m=1,i,j,circle=1; cin>>n; while(m<=n*(n+1)/2) { for(i=circle,j=circle; j<=n-(circle-1)*2; j++)//橫向向右賦值 a[i][j]=m++; for(i=circle+1,j=n-(circle-1)*2-1; i<=n-(circle-1)*2&&j>=circle; i++,j--)//對角線左下向賦值 a[i][j]=m++; for(i=n-(circle-1)*2-1,j=circle; i>=circle+1; i--)//豎向向上賦值 a[i][j]=++; circle++;//環繞的圈數 } //列印上三角矩陣 for(i=1;i<=n;i++) { for(j=1;j<=n-i+1;j++) { printf("%4d",a[i][j]); } printf("\n"); } return 0; }