问题遇到的现象和发生背景
上机课时,用循环队列输出杨辉三角时循环不能停止,求帮助!
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<malloc.h>
#define max 100
typedef int elemtype;
typedef struct
{
elemtype data[max];
int front,rear;
} sqqueue;
void initqu(sqqueue *&qu)
{
qu=(sqqueue *)malloc(sizeof(sqqueue));
qu->front=qu->rear=0;
}
bool enqu(sqqueue *&qu,elemtype e)
{
if((qu->rear+1)%max==qu->front)
return false;
else
{
qu->rear=(qu->rear+1)%max;
qu->data[qu->rear]=e;
return true;
}
}
bool dequ(sqqueue *&qu,elemtype &e)
{
if(qu->front==qu->rear)
return false;
else
{
qu->front=(qu->front+1)%max;
e=qu->data[qu->front];
return true;
}
}
int main()
{
sqqueue *qu;
int i,N,n,x,y,t;
initqu(qu);
printf("输入杨辉三角的行数:");
scanf("%c",&N);
enqu(qu,1);
printf("%3d\n",1);
for(n=2;n<N;n++)
{
x=0;
for(i=1;i<n;i++)
{
dequ(qu,y);
t=x+y;
printf("%3d",t);
enqu(qu,t);
x=y;
}
printf("%3d\n",1);
enqu(qu,1);
}
return 0;
}
运行结果及报错内容
循环不能停止
我的解答思路和尝试过的方法
试过多种方法都未改变