int main()
{
int i,j,a[100][100],n,k;
printf("请输入列数n= ");
scanf("%d",&n);
k=1;
//输出上三角
for(i=0; i<n;i++)
{
for(j=0; j<=i; j++)
{
if(i%2==0) a[i-j][j]=k;
else a[j][i-j]=k;
k++;
}
}
for(i=n; i<2*n-1; i++) //输出下三角
{
for(j=1; j<2*n-i; j++)
{
if(i%2==0) a[n-j][j+i-n]=k; //i-n在j循环里是定值了
else a[j+i-n][n-j]=k; //j+i-n的作用是实现行变化 n-j实现列数变化
k++;
} //两次循环可以视为矩阵的转置,所以只需将坐标交换即可
}
for(i=0; i<n;i++)
{
printf("\n");
for(j=0; j<n;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
return 0;
}
参与评论
您还未登录,请先
登录
后发表或查看评论
12-19
2万+

01-06
772

11-30
9065

“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交