蛇形矩阵问题
蛇形矩阵是由 1 开始的自然数依次排列成的一个矩阵上三角形。
【输入】本题有多组数据,每组数据由一个正整数 N 组成。(N不大于100)
【输出】对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。
【输入范例】5
【输出范例】1 3 6 10 15 2 5 9 14 4 8 13 712 11
程序代码:
#include<stdio.h>
int main()
{
intN,i,j,s[100][100]; //i表示二维数组是s[][]的行,j表示二维数组是s[]的列
scanf("%d",&N); //输入N
s[0][0]=1; //给二维数组s[][]的第一个元素赋初值为1
printf("%d",s[0][0]); //输出二维数组s[][]的第一个元素
for(i=0;i<N-1;i++) //循环遍历,利用元素值和行列下标i、j的关系,通过数学递推关系,按蛇形矩阵输出
{
for(j=0;j<N-i-1;j++)
{
s[i][j+1]=s[i][j]+i+j+2; //按蛇形矩阵,一行一行的生成
printf("%d",s[i][j+1]);
}
//printf("\n"); //每输出一行后换行
s[i+1][0]=s[i][0]+i+1;//从第二行开始,生成每一行的第一个元素值 printf("%d",s[i+1][0]); //从第二行开始,输出每一行的第一个元素值
}
printf("\n");
return0;
}