- 8
- 0
- 约1.34千字
- 约 6页
- 2017-07-09 发布于湖北
- 举报
题目 实现矩阵之字形打印
实验要求:任给一个矩阵(m*n),实现元素的之字形输出。
例如:A[4][4]={1,2,3,4,
5,6,7,8,
9,10,11,12,
13,14,15,16}
程序应依次输出:
1
2, 5
3, 6, 9
4, 7, 10, 13
8, 11, 14
12, 15
16
实验思路:利用2个坐标点a(x,y),b(m,n)分别标记一个参考点,用来划分一条对角线(对角线上元素就是需要依次打印)。一轮结束之后根据具体条件移动参考点,继续打印。我们假设a(x,y)先向下移动,再向右移动,不同的是b(m,n)先向右移动,再向下移动。当a(x,y),b(m,n)重合时,就到达矩阵的最后一个元素。
实验源码:
#includestdio.h
#define paraX 5 //矩阵行参数
#define paraY 5 //矩阵列参数
void main()
{
int a[paraX][paraY];
int x,y,m,n,i,j;
int num=1;
printf(输出原矩阵\n);
for(i=0;iparaX;i++) //初始化并显示a[i][j]
{
for(j=0;jparaY;j++)
{
a[i][j]=num;
printf(%-3d,a[i][j]);
num+=1;
}
printf(\n\n);
}
x=0; //标记坐标(x,y)
y=0;
m=0; //标记坐标(m,n)
n=0; //利用以上坐标画出矩阵的一条对角线
printf(\n之字形打印\n);
while(x=paraX-1y=paraY-1m=paraX-1n=paraY-1) //坐标没有走到底就执行循环
{
i=m;
j=n;
while(i=xj=y) //利用坐标(m,n)(x,y)从右上到左下依次打印斜线上元素
{
printf(%-3d,a[i][j]);
i=i+1;
j=j-1;
}
printf(\n\n);
if(xparaX-1) //(x,y)的行x移动
{
x=x+1;
}
else //(x,y)的列y移动
{
y=y+1;
}
if(nparaY-1) //(m,n)的列n移动
{
n=n+1;
}
else //(m,n)的行m移动
{
m=m+1;
}
}
}
实验效果:
图 1 打印5*5矩阵
图 2 打印5*1矩阵
图 3 打印1*5矩阵
您可能关注的文档
- 第十一章 助理电子商务师模拟试题(有答案).docx
- 网工配置指令的知识.docx
- 第十一章 中庸读后感800字.docx
- 东财《人力资源管理》在线作业三(随机)(副本).doc
- IT基础考试和答案.docx
- 第十一章 数字电路实验板设计.doc
- 光盘放进电脑光驱,不能复制,更不能刻录,我来教你!介绍.doc
- 中等职业学校教师专业技术职务任职资格基本条件讲述.doc
- 界面划分表格初稿教材.docx
- 尖草坪区职称论文发表网-T型钢连接循环荷载滞回性能论文选题题目指南.docx
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)