zbdn 2021-02-27 23:31 采纳率: 64.3%
浏览 27
已采纳

此代码在生成杨辉三角后不停生成别的,应该怎么改?

//LinearList.h
#include<iostream>
using namespace std;
template<class T>
class LinearQueue
{
public:
	LinearQueue(int LQMaxSize);
	~LinearQueue();
	bool IsEmpty();
	bool IsFull();
	bool Insert(T x);
	bool Delete(T& x);
	bool GetElement(T &x);
 
private:
	int front,rear;
	T*element;
    int Maxsize;
};
 
template<class T>
LinearQueue<T>::LinearQueue(int LQMaxSize)
{ Maxsize=LQMaxSize;
  element=new T[Maxsize];
  front=0;
  rear=0;}
 
template<class T>
LinearQueue<T>::~LinearQueue()
{ delete []element;}
 
template<class T>
bool LinearQueue<T>::IsEmpty()
{ if(front==rear)
     return true;
else return false;}
 
template<class T>
bool LinearQueue<T>::IsFull()
{
  if((rear+1)%Maxsize==front)
	  return true;
  else
	  return false;}
 
template<class T>
bool LinearQueue<T>::Insert(T x)
{ if(IsFull())
  {cout<<"此栈已满,无法添加"<<endl;
return false;}
else
{ element[rear]=x;
  rear=(rear+1)%(Maxsize);
 return true;}
}
 
template<class T>
bool LinearQueue<T>::Delete(T& x)
{ if(IsEmpty())
{cout<<"此栈是空"<<endl;
return false;}
else
{ x=element[front];
  front=(front+1)%(Maxsize);
return true;}}
 
template<class T>
bool LinearQueue<T>::GetElement(T &x)
{ if(IsEmpty())
   return false;
else
{
	x=element[front];
	return true;}
}
 
 
//LinearList.cpp
#include "stdafx.h"
#include"LinearList.h"
#include<iostream>
using namespace std;
void YangHui(int n);
void PrintSpace(int n,int k)
{ for(int i=1;i<=n-k;i++)
   cout<<' ';
}
int main()
{   int n;
   cout<<"请输入杨辉三角的行数"<<endl;
   cin>>n;
   YangHui(n);
   system("pause");
	return 0;
}
 
void YangHui(int n)
{ 
	LinearQueue<int>Q(n+2);
	int x,y;
	PrintSpace(n,1);
	cout<<'1'<<endl;
	Q.Insert(0);
	Q.Insert(1);
	Q.Insert(1);
	for(int i=2;i<=n;i++)
	{  Q.Insert(0);
	PrintSpace(n,i);
	   do
	   {Q.Delete(x);
	   Q.GetElement(y);
	   if(y)
		   cout<<y<<' ';
	   else
		   cout<<endl;
	   Q.Insert(x+y);}
	   while(y);}
	cout<<endl;}
  • 写回答

1条回答 默认 最新

  • SoftwareTeacher 《编程之美》作者 2021-02-28 08:37
    关注

    你的循环条件是  

    while(y)

    你可以打印 y 的值看看,它是怎么变化的。 

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B