哪位大哥帮下忙!c++写二项式(a+b)n展开后,其系数构成杨辉三角形,利用队列写出打印杨辉三角形的前n行

问题描述:

哪位大哥帮下忙!c++写二项式(a+b)n展开后,其系数构成杨辉三角形,利用队列写出打印杨辉三角形的前n行
1个回答 分类:综合 2014-11-16

问题解答:

我来补答
#include
#include
#define maxsize 1000
typedef struct
{
int element[maxsize];
int front;
int rear;
}SeqQueue;
void Print();
void Choose(int choice);
void YangHuiTriangle(int n);
void InitQueue(SeqQueue *Q);
int EnterQueue(SeqQueue *Q,int x);
int DeleteQueue(SeqQueue *Q,int *x);
int GetHead(SeqQueue Q,int *x);
int main()
{
system("color a");
Print();
while(true)
{
printf("Press enter to continue.");
getchar();
getchar();
system("cls");
Print();
}
return 0;
}
void Print()
{
int choice;
printf("Made By 杨梅树的盔甲~\n");
printf("---------------------\n");
printf("使用说明:本程序可打印出一个n行的杨辉三角.\n");
printf("---------------------\n");
printf("1.请输入杨辉三角的行数n.\n");
printf("2.按其它任意键退出.\n");
printf("---------------------\n");
printf("请选择你要的操作:");
scanf("%d",&choice);
Choose(choice);
}
void Choose(int choice)
{
int n;
switch(choice)
{
case 1:
printf("请输入杨辉三角的行数n:\n");
scanf("%d",&n);
YangHuiTriangle(n);
break;
default:
exit(0);
}
}
void YangHuiTriangle(int n)
{
int blank;
int x;
int temp;
int i;
int j;
SeqQueue Q;
InitQueue(&Q);
EnterQueue(&Q,1); //第一行元素入队
for(i=2;irear+1)%maxsize==Q->front)//队列已满
return(false);
Q->element[Q->rear]=x;
Q->rear=(Q->rear+1)%maxsize;//重新设置队尾指针
return(true);//操作成功
}
//出队操作
int DeleteQueue(SeqQueue *Q,int *x)
//删除队列的队头元素,用x返回其值
{
if(Q->front==Q->rear)//队列为空
return(false);
*x=Q->element[Q->front];
Q->front=(Q->front+1)%maxsize;//重新设置队头指针
return(true);//操作成功
}
int GetHead(SeqQueue Q,int *x)
{
if(Q.front==Q.rear)//队列为空
return(false);
*x=Q.element[Q.front];
return(true);
}
 
 
展开全文阅读
剩余:2000