c语言二维数组输出杨辉三角

#include<stdio.h>
int main()
{
int i,j;
int a[5][5];
printf("1\n");
for(i=1;i<5;++i)
{a[i][0]=1;
a[i][i]=1;
if(i>1)
{for(j=1;j!=i;++j)
{a[i][j]=a[i-1][j-1]+a[i-1][j];
}}//构造数组
int k,l;
for(k=0;k<5;++k)
for(l=0;l<5;++l)
printf("%d ",a[k][l]);
printf("\n");
}

}
这是我自己写的,输出结果是一大串数字
附杨辉三角
1
1 1
1 2 1 //2=1+1
1 3 3 1 //3=1+2
1 4 6 4 1

错在哪

1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。

2、定义变量和数组:#include<stdio.h>main(){ int i, j, a[11][11];                             /*定义i,j,a[11][11]为基本整型*/。

3、确定1的位置: for (i = 1; i < 11; i++)                     /*for循环i的范围从1到10*/。

4、确定其余的位置和数值: for (i = 3; i < 11; i++)                     /*for循环范围从第3行开始到第10行*/for (j = 2; j <= i - 1; j++)                 /*for循环范围从第2列开始到该行行数减一列为止*/ a[i][j] = a[i - 1][j - 1] + a[i - 1][j];  /*第i行j列等于第i-1行j-1列的值加上第i-1行j列的值*/。

5、输出结果: for (i = 1; i < 11; i++){ for (j = 1; j <= i; j++)printf("%4d", a[i][j]);              /*通过上面两次for循环将二维数组a中元素输出*/ printf("\n");                            /*每输出完一行进行一次换行*/ }。

6、最后输出结果如图所示。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-15

修改后代码如下

#include<stdio.h>
int main()
{
    int i,j;
    int a[5][5];
    //printf("1\n");
    a[0][0] = 1;/////////////////初始化第一行
    for(i=1;i<5;++i)
    {
        a[i][0]=1;
        a[i][i]=1;
        if(i>1)
        {
            for(j=1;j!=i;++j)
            {
                a[i][j]=a[i-1][j-1]+a[i-1][j];
            }
        }//构造数组
    }
    /////////////////这段放到外面输出
    int k,l;
    for(k=0;k<5;++k){//////////////////包含输出回车,用大括号扩起来
        for(l=0;l<=k;++l)///////////////每行只有k个元素要输出
            printf("%d ",a[k][l]);
        printf("\n");
    }///////////////
    /////////////////
    return 0;
}

本回答被提问者采纳
第2个回答  2015-07-28

int main(int argc, const char * argv[]) {

    int i,j;

    int a[5][5];

    printf("1\n");

    

    for(i = 1; i < 5;++i)

    {

        a[i][0] = 1;

        a[i][i] = 1;

        if(i > 1)

        {

            for(j = 1; j < i ; ++j)

            {

                a[i][j] = a[i-1][j-1]+a[i-1][j];

            }

        }//构造数组

    }

    for(int k = 1; k < 5;++k)

    {

        for(int l = 0;l <= k;++l)

            printf("%d ",a[k][l]);

        printf("\n");

    }

    return 0;

}

运行结果: