1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c语言杨辉三角实训报告 杨辉三角实验报告.doc

c语言杨辉三角实训报告 杨辉三角实验报告.doc

时间:2024-08-14 21:16:37

相关推荐

c语言杨辉三角实训报告 杨辉三角实验报告.doc

杨辉三角实验报告

杨辉三角需求分析逐行打印二项展开式 (a + b)i 的系数

要求:输入杨辉三角的阶数n,在屏幕上显示数杨辉三角形。输入的值n以小于12为宜(图形漂亮)。概要设计1. 首先初始化一个队列,元素为1,然后根据这个队列迭代生成任意行的二项式系数。2. 判断用户输入的行数,然后决定循环次数。这些循环中,程序根据杨辉三角的实际构造函数模拟构造过程。每次形成一个新的二项式系数序列,并将这个序列 保持在一个新的队列中。本次循环结束后,这个心构造的序列将作为下次循环来构造另一个二项式序列的参照序列。

详细设计定义队列结点typedef struct QNode{ int data; struct QNode *next; }QNode ,*QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue; 基本操作函数原型 队列初始化void InitQueue(LinkQueue *Q) { Q->front =Q->rear = (QueuePtr)malloc(sizeof(QNode)); if(!Q->front) printf("OVERFLOW"); Q->front->next= NULL; } 插入元素e为新的队尾元素void EnQueue(LinkQueue *Q,int e) { QNode *p; p = (QueuePtr)malloc(sizeof(QNode)); if(!p) printf("OVERFLOW"); p->data = e; p->next = NULL; Q->rear->next = p; Q->rear = p; } void DeQueue(LinkQueue *Q){ QNode *p; if(Q->front == Q->rear) printf("ERROR"); Q->front->next = Q->front->next->next; }美化形状for(i = 1;i <= n; i++) { printf("\n"); c=i;for(b=1;b<=n-c;c++){printf(" ");}}根据上行系数求下行系数for (j=1;j<=i+2;j++) { t = q->front->next->data; DeQueue (q); EnQueue (q,s+t); s = t; if (j!=i+2) printf("%3d ",s); } 调试分析美化形状时,第一次的输出空格的个数和位置考虑的有瑕疵,导致图像歪歪曲曲的。当输入数字较大时(比如19),阶数太大导致“杨辉三角”的图像没有出来。用户手册本程序的运行环境是win7操作系统,执行文件为:task.exe。进入时界面如下:

测试结果

实验总结1. 本次实验历时4个小时(课外时间另算),主要练习线性表中的队列的应用,涉及队列的删除,插入,搜索操作,基本涵盖了队列的应用范围。 2.“%3d”对图形的美化起到了关键作用。(想同学请教学得)3.实验中还是有些内容需要翻书才能解决,这反映了对书本内容的生疏。需要加强。附录程序源代码:#include #include #include #include typedef struct QNode{ int data; struct QNode *next; }QNode ,*QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue; //基本操作函数原型 void InitQueue(LinkQueue *Q) { //队列初始化 Q->front =Q->rear = (QueuePtr)malloc(sizeof(QNode)); if(!Q->fr

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。