这是我们老师留的一道课后习题作业题,自己写的。
一开始不太会写,搜的要嘛看不懂,要嘛代码有问题,我就想写个博客了,第一次写,还不太会,见谅。
问题:
编辑打印如下面图形的n*n方阵的副三角方阵
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
思路:
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