当前位置: 代码迷 >> C语言 >> 杨辉三角形问题
  详细解决方案

杨辉三角形问题

热度:233   发布时间:2005-08-11 16:42:00.0
杨辉三角形问题
用数组打印: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 (红色的数不为1) 下列是我编写的程序: main() { int array[10][10]; int i,j; array[0][0]=1; printf("%d\n",array[0][0]); for(i=1;i<10;i++) { array[i][i-i]=1; printf("%d",array[i][i-i]); for(j=1;j<=i;j++) { array[i][j]=array[i-1][j-1]+array[i-1][j]; printf("%4d",array[i][j]); } printf("\n"); } getch(); } 但是结尾的数不为1,而是1513,为什么??

[此贴子已经被作者于2005-8-11 16:45:21编辑过]

搜索更多相关的解决方案: 杨辉三角  

----------------解决方案--------------------------------------------------------
array[i][j]=array[i-1][j-1]+array[i-1][j];

array[9][9]=array[8][8]+array[8][9],

array[8][9]等于多少呢?
----------------解决方案--------------------------------------------------------
定义a[10][10]是不能放10个东西进去的.......因为最后一个a[10][10]要放一个'\0'
好象是这样的。。。。。。
----------------解决方案--------------------------------------------------------
修改了一下程序,把数组全部赋值后再输出,想了半天终于能运行了

main()
{
    int i,j;
    int a[10][10];
    for(i=0;i&lt;10;i++)
        a[i][0]=a[i][i]=1;
    for(i=2;i&lt;10;i++)
        for(j=1;j&lt;i;j++)
            a[i][j]=a[i-1][j-1]+a[i-1][j];
    for(i=0;i&lt;10;i++)
    {
        for(j=0;j&lt;=i;j++)
            printf("%5d",a[i][j]);
        printf("\n");
    }
    getch();
}
----------------解决方案--------------------------------------------------------
后面的数忘了赋值,大意了...
----------------解决方案--------------------------------------------------------
以下是引用天堂的叛逆者在2005-8-11 18:30:45的发言: 定义a[10][10]是不能放10个东西进去的.......因为最后一个a[10][10]要放一个'\0' 好象是这样的。。。。。。
a[0]-a[9]不是10个吗?
----------------解决方案--------------------------------------------------------