蛇行矩阵
【问题描述】
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
【要求】
【数据输入】本题有多组数据,每组数据由一个正整数N组成。(N不大于100)
【数据输出】对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。
【样例输入】
5
【样例输出】
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
#include<stdio.h>
int m = 1;
void pailei(int n);
int main()
{
int n = 7;
pailei(n);
return 0;
}
void pailei(int n){
int shuzi[100][100];
int i ,j ;
int sum = n*n;
i = n;
int c = 0;
while(m<sum+1)
{
//i 是 x轴
//j 是 y轴
//向下
i=i-1;
j = c;
for(;j < n-c; j++){
shuzi[i][j]=m;
m++;
}
//向左
j=j-1;
i = i-1;
for(; i >= 0+c; i--){
shuzi[i][j]=m;
m++;
}
//向上
i=i+1;
j = j-1;
for(; j >=0+c; j--){
shuzi[i][j]=m;
m++;
}
//向右
j=j+1;
i = i+1;
for(; i <n-1-c; i++){
shuzi[i][j]=m;
m++;
}
c++;
}
for(int p = 0; p < n; p++){
for(int q = 0; q < n; q++){
printf("%10d",shuzi[q][p]);
}
printf("\r\n");
}
}