輸出蛇形矩陣 C語言
阿新 • • 發佈:2020-12-15
輸出蛇形矩陣
樣例
輸入
5
輸出
15 7 6 2 1
16 14 8 5 3
22 17 13 9 4
23 21 18 12 10
25 24 20 19 11
解答
#include <stdio.h>
int main()
{
int a[20][20] = {0};
int i, j, n, count = 1;
scanf("%d", &n);
i = 0;
j = n;
do /*從右上方開始的半個倒三角*/
{
for(j -= 1; i>=0; i--, j--) /*下行(2 3,7 8 9 10……)*/
{
a[i][j] = count++;
}
if(j<0) break;
for(i = 0; j<n; i++, j++) /*上行(1,4 5 6……)*/
{
a[i][j] = count++;
}
}while(i>0&&j>0);
i = -1;
j = 0;
do /*接著倒三角作左下方的正三角*/
{
for(i += 2, j = 0; i<n; i++, j++) /*同理,下行*/
{
a[i][j] = count++;
}
for(i -= 1, j -= 2; j>=0; i--, j--) /*同理,上行*/
{
a[i][j] = count++;
}
}while(i != n);
for(i = 0; i< n; i++) /*輸出矩陣*/
{
for(j = 0; j<n; j++)
{
printf("%d ", a[i][j]);
}
putchar('\n');
}
return 0;
}
總結
(小聲)其實我這個程式碼只對n為奇數時才適用。。。