您好、欢迎来到现金彩票网!
当前位置:彩之网 > 中断队列 >

C++:用队列设计杨辉三角为什么他只输入1就说程序中断呢

发布时间:2019-06-16 18:13 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  但是在i=1的循环中,str1里面还没有东西啊。我这里一运行就会直接出错。

  是不是少了{}呢?更多追问追答追问那在我那程序的基础上应该怎样改呢追答那你稍等一下,我调一下看看。我对quene这个数据结构不太熟悉,没有怎么写过。追问是queue..那我等你啊..谢谢你了追答额 我刚才打错了。我正在看。你的循环里面的几个if我有点没有太理解。追问那应该怎么改了..

  其他就用队列的的第一个加第二个来得出追答在修改以前,我大概讲一下我设计的新算法哈。和你的有点小区别,因为我感觉你的这个程序逻辑上有点不够好。

  我的算法是,在i从1开始的循环中。每一行的处理上我们的方法都是一样的,就是先在队列中放入一个0,然后放入当前行要处理的东西,处理完之后再在队列的后面放一个零。这样就处理了两端的1的问题。

  我举个例子给你说明一下。刚开始,i=1的时候。我们在队列中放入0,1,0。进入i=2;我们再从队列的头开始每次取两个进行处理得到0+1=1,1+0=1,再放入一个0.这时候当处理完i=2的时候,队列就变成了0,1,1,0.然后我们在i=3的时候,每次都是从队列前取两个相加放到队列尾,完成一个i的循环之后补上一个0。所以i=3的处理过程中,队列的变化为:1,1,0,1---1,0,1,2--0,1,2,1--最后发现是0了,就说明i=3处理完了,补上一个0.完成i=3的循环。。。。

  不晓得你能不能理解,我正在给你写。因为我对于你程序里面的cout部分也没有太明白。呵呵

  if(i==1)第一行的时候我们要手动在队列里面放入一个1

  else不是第一行,就从队列取出前两项相加,然后放在队列的尾端

  if(b==0) 说明这行已经做完了,取到了我们之前标志的每行的结束的那个0

http://ando2.com/zhongduanduilie/81.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有