我在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))