热门

最新

红包

立Flag

投票

同城

我的

发布
heiyucn
小菜萌新.
4 年前
trueheiyucn

主函数二个for循环看不懂,有没有人救救孩子《循环队列打印杨辉三角》
int main(){
int N,n,c;
QElemType t,x; //t,x用于存储第三行及以后计算产生的临时值
SqQueue f,*Q;
Q=&f;
InitQueue(Q);
printf("请输入杨辉三角规模N:");
scanf("%d",&N);
EnQueue(Q,1); //第一行的1
for(n=2;n<=N;n++){ //处理第二行及之后的元素
EnQueue(Q,1); //队列插入首元素1
//以下for循环处理第3行及之后行的中间元素
for(c=1;c<=n-2;c++){
t=GetHead(Q); //c从1号位开始 逐一获取节点
DeQueue(Q); //获取完节点后队头指针往后移1
printf("%4d",t); //输出当前节点值 t用于存储当前节点值
x=GetHead(Q); //x用于获取下一个节点的节点值(前一个元素已出队 用t保存)
t=t+x; //计算两值之和
EnQueue(Q,t); //更新后的t值入队
}
EnQueue(Q,1); //插入每一行最后一个元素1
printf("%4d",GetHead(Q));
DeQueue(Q);
printf("\n"); //打印完当前行的上一行 需要换行
}

while(Q->front!=Q->rear){ //打印剩下未出队的元素(最后一行元素)
printf("%4d",GetHead(Q));
DeQueue(Q);
}
return 0;
}

CSDN App 扫码分享
分享
评论
2
打赏
  • 复制链接
  • 举报
下一条:
关于期末速成机器学习这件事
立即登录