热门

最新

红包

立Flag

投票

同城

我的

发布
qq_45662588
༺ཌༀ我不是程序员哇~~~ༀད༻
4 年前
trueqq_45662588

又是摸鱼的一天~

保持热爱共赴山海
CSDN App 扫码分享
分享
评论
1
打赏
  • 复制链接
  • 举报
下一条:
主函数二个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;}
立即登录