先给出头文件
#include<stdio.h>
#define queuesize 40
typedef struct squeue
{
int queue[queuesize];
int front,tear;
}seqqueue;
void initqueue(seqqueue *s)
{
s->front=s->tear=0;
}
int queueempty(seqqueue s)
{
if(s.front==s.tear)
return 1;
else
return 0;
}
int enterqueue(seqqueue *s,int x)
{
if(s->tear==queuesize)
return 0;
s->queue[s->tear];
s->tear=s->tear+1;
return 1;
}
int deletequeue(seqqueue *s,int *e)
{
if(s->front==s->tear)
return 0;
else
{
*e=s->queue[s->front];
s->front=s->front+1;
return 1;
}
}
int gethead(seqqueue *s,int *e)
{
if(s->front==s->tear)
return 0;
else
{
*e=s->queue[s->front];
return 1;
}
}
int numqueue(seqqueue *l,int e)
{
e=l->tear-l->front;
return e;
}
然后是程序代码
#include<stdio.h>
#include"seqqueue.h"
#include<stdlib.h>
void main()
{
int n,i,j,k=0,*e=NULL,*f=NULL,o=0,*p=NULL;
seqqueue *l;
l=(seqqueue *)malloc(sizeof(seqqueue));
printf("请输入杨辉三角的行数:");
scanf("%d",&n);
printf("你输出的行数为:%d \n",n);
initqueue(l);
enterqueue(l,1);
printf("%d\n",l->queue[l->front]);
for(i=0;i<n;i++)
{
for(j=0;j<k;j++)
{
deletequeue(l,e);
if(gethead(l,f)==0);
*f=0;
*e=*e+*f;
enterqueue(l,*e);
}
k++;
enterqueue(l,1);
p=&l->queue[l->front];
for(i=0;i<l->tear;i++,p++)
printf("%d ",*p);
printf("\n");
}
}
编写此程序的目的是为了写出杨辉三角,但是不要求每行的排列问题。。同学看看 为毛编译过了,就是运行不了啊 我改来改去3个小时了。。。实在无奈求解
不要拿书上的方法来,我要用我自己的思维解答,同学们就在我这个程序的基础上修改下把