7-66 列印楊輝三角(20 分)
阿新 • • 發佈:2019-01-02
這道題看似很簡單,但實際上對於格式特別敏感。我一開始寫完之後,提交格式錯誤,原本以為是因為換行,結果發現,其實是因為每一行開頭的第一個字元所佔的位數多了一位,一開始我計算每行首位前的空格時,想的是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; }