C++ 中帕斯卡三角形程序中的输出不正确



我在C++中创建了一个Pascal的三角形程序,但显示的输出并不像预期的那样。

预期输出

1
1   1
1   2   1
1   3   3   1
1  4   6   4   1 
1 5   10  10  5   1 

输出得到

1 
1 1
1 2 1
1 3 3 1
1 2 2 2 1 
1 6 6 6 6 1

在i=4之前,显示的输出是正确的,但在那之后,我不知道它是怎么出错的。Hers是获得审查的源代码

int main()
{ int num, a[37680], t = 0, b = 2, l;
cout<<"Enter the number of rows: ";
cin>>num;
for (int i = 1; i <= num; i++)
{
for (int j = 1; j <= (num - i); j++)
{
cout<<" ";
}
for (int k = 1; k <= i; k++)
{
l = k;
if (k == 1 || k == i)
{
a[t] = 1;
cout<<a[t]<<" ";
t+=1;
}
else
{
a[t] = a[t - b] + a[t - b - 1]; 
cout<<a[t]<<" ";
t+=1;
if ( l = (i - 1) )
{
b+=1;
}
}
}
cout<<endl;
}
return 0;}

c++中的相等性检查是使用==而不是=进行的,因此:

if(l=(i-1))

应为:

if(l==(i-1))

最新更新