C语言程序设计——杨辉三角
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include"stdio.h"
#include"malloc.h"
#define MAXSIZE 10
typedef int datatype;
typedef struct
{int data[MAXSIZE];
int front;
int rear;
}SeqQueue;
SeqQueue *InitQueue()
{SeqQueue *q;
q=(SeqQueue*)malloc(sizeof(SeqQueue));
q->front=q->rear=0;
return q;
}
void EnQueue(SeqQueue *q,datatype x)
{if((q->rear+1)%MAXSIZE==q->front)
{printf("\n顺序循环队列是满的!");exit(1);}
q->data[q->rear]=x;
q->rear=(q->rear+1)%MAXSIZE;
}
datatype DeQueue(SeqQueue *q)
{datatype x;
if(q->front==q->rear)
{printf("\n顺序队是空的!不能做删除操作!");exit(1);}
x=q->data[q->front];
q->front=(q->front+1)%MAXSIZE;
return x;}
int QueueEmpty(SeqQueue *q)
{return(q->front==q->rear);}
int GetHead(SeqQueue *q)
{int e;
if(q->front==q->rear) e=0;
else e=q->data[q->front];
return e;
}
void yanghui(int n)
{SeqQueue *q;
int i,j,s,t;
for(i=1;i<=n;i++)
printf("");
q=InitQueue();
EnQueue(q,0);
EnQueue(q,1);EnQueue(q,1);
for(j=1;j
EnQueue(q,0);
do
{s=DeQueue(q);
t=GetHead(q);
if(t) printf("%5d",t);
else printf("\n");
EnQueue(q,s+t);
}while(t!=0);
}
DeQueue(q);
printf("%3d",DeQueue(q));
while(!QueueEmpty(q))
{t=DeQueue(q);
printf("%5d",t);
}
}
main()
{int n;
printf("\n请输入杨辉三角的行数:\n");
scanf("%d",&n);
yanghui(n);}