
急!!!等腰三角形的杨辉三角用C语言怎么弄啊?
2个回答
展开全部
#include "stdio.h"
#define N 100
//#define NULL 0
struct QN
{
int front;
int rear;
int data[N];
};
void initQueue(struct QN *Q)
{
Q->front=Q->rear=0;
}
void inQueue(struct QN *Q,struct QN *WQ,int h)
{ //
int i=0;
for(i=1;i<h;i++)
{
if(i==1)
{
Q->data[i]=1;continue;
}
Q->data[i]=WQ->data[i-1]+WQ->data[i];
Q->rear++;
}
Q->data[h]=1;
}
struct QN outQueue(struct QN *Q,int n,int q)
{
struct QN *NQ;
int x=0,i,m;
NQ=Q;
for(m=q;m>=n ;m--)
printf(" ");
for(i=1;i<=n;i++)
{
x=Q->data[i];Q->front++;
printf("%3d",x);
//printf("data=%3d",NQ->data[i]);
}
printf("\n");
return *NQ;
}
void main()
{
struct QN Q;
struct QN WQ;
int n,i;
printf("输入要打印杨辉三角的行数\n");
initQueue(&Q);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
inQueue(&Q,&WQ,i);
WQ=outQueue(&Q,i,n);
}
}
这是用C语言的队列知识编的程序,看你是否需要。
#define N 100
//#define NULL 0
struct QN
{
int front;
int rear;
int data[N];
};
void initQueue(struct QN *Q)
{
Q->front=Q->rear=0;
}
void inQueue(struct QN *Q,struct QN *WQ,int h)
{ //
int i=0;
for(i=1;i<h;i++)
{
if(i==1)
{
Q->data[i]=1;continue;
}
Q->data[i]=WQ->data[i-1]+WQ->data[i];
Q->rear++;
}
Q->data[h]=1;
}
struct QN outQueue(struct QN *Q,int n,int q)
{
struct QN *NQ;
int x=0,i,m;
NQ=Q;
for(m=q;m>=n ;m--)
printf(" ");
for(i=1;i<=n;i++)
{
x=Q->data[i];Q->front++;
printf("%3d",x);
//printf("data=%3d",NQ->data[i]);
}
printf("\n");
return *NQ;
}
void main()
{
struct QN Q;
struct QN WQ;
int n,i;
printf("输入要打印杨辉三角的行数\n");
initQueue(&Q);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
inQueue(&Q,&WQ,i);
WQ=outQueue(&Q,i,n);
}
}
这是用C语言的队列知识编的程序,看你是否需要。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询