-1

我正在尝试编写用于打印帕斯卡三角形的代码。我编写了以下程序,但输出格式与我想要完成的不同。

代码清单


void main(){
    int a[15][15],row,num=25,i,j,k;
    clrscr();
    printf("Enter Num of rows");
    scanf("%d",&row);
    for(i=0;i<row;i++){
        for(k=num-2*i;k>=0;k--)
            printf("");

        for(j=0;j<=i;j++){
            if(j==0||i==j){
                a[i][j]=1;
            }else{
                a[i][j]=a[i-1][j-1]+a[i-1][j];
            }
            printf("%6d",a[i][j]);

        }
        printf("\n");
    }
    getch();
}

样本输出


1
1 1
1 2 1
1 3 3 1

上面的输出不是我想要的。我正在尝试实现以下结果:

      1
    1   1
  1   2   1
1   3   3   1
4

2 回答 2

4

问题在于你的printf("");陈述

通过printf(" ");添加空格来实现。

您的原始printf("");语句不会对输出格式进行任何更改。

asprintf(" ");在循环的每次迭代中打印一个空格,

for(k=num-2*i;k>=0;k--) 
于 2013-04-04T18:07:37.393 回答
1

尝试替换printf("");printf(" ");

(区别是引号之间的空格)

于 2013-04-04T18:07:10.280 回答