C语言打印n*n方阵的副上三角形(1 3 6 10 15 2 5 9 14 …….)

C语言打印n*n方阵的副上三角形(1 3 6 10 15 2 5 9 14 …….)问题:编辑打印如下面图状的n*n方阵的副上三角阵136101525914481371211_副上三角矩阵

这是我们老师留的一道课后习题作业题,自己写的。
一开始不太会写,搜的要嘛看不懂,要嘛代码有问题,我就想写个博客了,第一次写,还不太会,见谅。

问题:
编辑打印如下面图形的n*n方阵的副三角方阵
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11

 与以往的不同,对数组进行赋值时,按照对角线一行一行的赋值,K为第一层循环,控制斜着的第几行。

思路:
i为行,j为列,k为如上图所示的斜着的行(每一行i+j=k),t为要赋给数组的值。
然后赋值阶段,斜着的变量k为第一层循环,第二层循环的变量为列 j (这样比较容易),再给数组赋值。
最后,按行和列的顺序输出。
主要就在于怎么正确赋值,赋值完了再在后面输出就行了。
代码如下:

#include <stdio.h>
int main(){
 int i,j,k,n,t=1,a[100][100];
 scanf("%d",&n);
 for(k=2;k<=n+1;k++){
  for(j=1;j<k;j++){
    i=k-j;
    a[i][j]=t;
    t++;
  }
 }
 for(i=1;i<=n;i++){
  for(j=1;j<=n-i+1;j++)
   printf("%d ",a[i][j]);
  printf("\n");
 }
 return 0;
}

结果如下:
在这里插入图片描述

今天的文章C语言打印n*n方阵的副上三角形(1 3 6 10 15 2 5 9 14 …….)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/68667.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注