1. 程式人生 > >7-66 列印楊輝三角(20 分)

7-66 列印楊輝三角(20 分)

       這道題看似很簡單,但實際上對於格式特別敏感。我一開始寫完之後,提交格式錯誤,原本以為是因為換行,結果發現,其實是因為每一行開頭的第一個字元所佔的位數多了一位,一開始我計算每行首位前的空格時,想的是n-i+1個空格,因為i從0開始,如果有10行,那麼第一行就應該是10-1=9個空格,而不是10-0+1個空格...剛才寫的時候發現,一直在這裡卡主真的很奇葩啊,估計我一直以為i從2開始吧...

        還有就是這道題目每個數字都佔4位,所以如果為第一行,那麼1前面已經有3個空格了,要在這三個空格的基礎上,在再前面計算出9個空格,也就是說,第一行的空格數應該為12個空格才對。我看見有的程式碼要單獨計算第一行,感覺沒有必要那麼麻煩。附上程式碼。

/*
    題目:楊輝三角
    作者:Unis
    日期:2018.3.3 Saturday
*/

#include<stdio.h>

int main(){
    const int maxn = 10;
    int ans[maxn][maxn];
    int n;
    scanf("%d",&n);
    for(int i = 0;i < n;i++){
        for(int j = 0;j < n-i-1;j++){//10-9-1=0
            printf(" ");
        }
        for(int j = 0;j < i+1;j++){
            if(i >= 2 && (j >= 1 && j < i)){
                ans[i][j] = ans[i-1][j-1] + ans[i-1][j];
            }
            else{
                ans[i][j] = 1;
            }

            printf("%4d",ans[i][j]);

        }
            printf("\n");

    }
    return 0;
}