- 8
- 0
- 约1.34千字
- 约 6页
- 2017-06-27 发布于湖北
- 举报
题目 实现矩阵之字形打印
实验要求:任给一个矩阵(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矩阵
您可能关注的文档
- 第十一章 通用监控主机安装配置说明书.doc
- 第八章 金属材料的屈服强度及强化.pdf
- 第25课 美洲及亚洲的经济区域集团化.ppt
- 世界大学城个人空间操作指南 彩色注释讲述.doc
- 三星公关传播方案摘要.ppt
- 第二章 智慧家庭工程师培训--初级篇.pptx
- 实验一 ASK调制及解调实验.doc
- 用光驱与旧CD机箱打造CD转盘播放机.doc
- 第二篇 计算机工程.ppt
- 连接服务器错误代码幻灯片.docx
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)