c++输出10行杨辉三角,有点问题,求解!!

#include <iostream.h>
void main()
{
inta[9],i,k,x;
for(i=0;i<8;i++) //通过程序自动形成有7个元素、有规律的数组
;
cin>>x;
for(k=0;k<8;k++) //查找欲插入x在数组中的位置,下标为k
;
for(i=7;i>=k;i--) //腾出第k个位置
;
; //插入x
for(i=0;i<=8;i++)
cout<<a[i][j]<<" "; cout<<endl;
}
}
输出:
1
2 1
2 3 1
2 5 4 1
2 7 9 5 1
2 9 16 14 6 1
2 11 25 30 20 7 1
2 13 36 55 50 27 8 1
2 15 49 91 105 77 35 9 1
2 17 64 140 196 182 112 44 10 1
Press any key to continue
为什么第一行不是1.!。。。。。
代码复制错了,是这个:
#include<iostream.h>
void main()
{ int a[10][10]={0},int i,j;
for(i=0;i<10;i++)
{ a[i][0]=1;
for(j=0;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
a[i][i]=1;
}
for(i=0;i<10;i++)
{ for(j=0;j<=i;j++)
cout<<a[i][j]<<" "; cout<<endl;
}

}

第1个回答  2014-12-28
for(j=0;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
你这里把a[i][0]值覆盖了。追问

谢谢~~

第2个回答  2014-12-28
你的代码和你的输出没有任何关系啊!追问

我擦,复制错了,不好意思。。。那是前面题的。。补充 了,麻烦帮我看看

追答#include<iostream.h>
void main()
{  
int a[10][10]={0},i,j;  //
for(i=0;i<10;i++)
{  
a[i][0]=1;
for(j=1;j<i;j++)//从1开始,不然j-1会越界!!
a[i][j]=a[i-1][j-1]+a[i-1][j];
a[i][i]=1;
}
for(i=0;i<10;i++)
{  
for(j=0;j<=i;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}

}

本回答被提问者和网友采纳
相似回答