[問題] 解釋實作巴斯卡三角形的程式碼

看板C_and_CPP作者 (玥)時間12年前 (2013/12/25 20:34), 編輯推噓2(2012)
留言14則, 9人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 小弟我是一位高中生 最近學校資訊課要做報告 主題抽到的是巴斯卡三角形 前面都看的懂 但是在for迴圈那邊的運算就看不懂了 不知道有沒有大大可以幫我解釋一下的 謝謝 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) #include<stdio.h> void fun(int); int main(void){ int in; while(1==1){ printf("Give me a number 1~8: "); scanf("%d", &in); fun(in); } return 0; } void fun(int n){ if(n>8 || n <1){ puts("range: 1~8"); return; } int buf[8]={1}; int i, j; for(i=0;i<n;i++){ for(j=i;j>0;j--) buf[j] = buf[j] + buf[j-1]; for(j=0;j<n-i;j++)printf(" "); for(j=0;j<=i;j++) printf("%5d ", buf[j]); printf("\n"); } } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.233.117.13

12/25 21:16, , 1F
你是哪一行for看不懂呢? 一是在做運算 二是印空白 三印值
12/25 21:16, 1F
for(j=i;j>0;j--) buf[j] = buf[j] + buf[j-1];這一行不太懂

12/25 21:19, , 2F
你會逐步執行嗎? 可以幫助了解程式碼運作
12/25 21:19, 2F
逐步執行是甚麼 不好意思 我是新手很多東西都不懂 ※ 編輯: adm987123 來自: 36.233.117.145 (12/25 21:40)

12/25 21:49, , 3F
google 單步執行
12/25 21:49, 3F

12/25 22:21, , 4F
先別說逐步執行了, 你聽過 printf() 嗎? google會不會
12/25 22:21, 4F

12/25 22:23, , 5F
第 5 行太神奇了,你知道自己在寫什麼嗎 :)
12/25 22:23, 5F

12/25 22:37, , 6F
看起來有點像....某種表情符號XD 以後都這樣寫好了
12/25 22:37, 6F

12/26 00:42, , 7F
#define TRUE (1==1) // (??
12/26 00:42, 7F

12/26 01:08, , 8F
while(1)就好了,不過對高中生,不用太苛責吧~~~
12/26 01:08, 8F

12/26 01:17, , 9F
(3==3) || (1==1)
12/26 01:17, 9F

12/26 01:21, , 10F
bool isLoopBreakable = (3==3) ; // (??
12/26 01:21, 10F

12/26 01:38, , 11F
http://ideone.com/HqsHrX 想不出來什麼場合會用到...
12/26 01:38, 11F

12/26 01:45, , 12F
=3=
12/26 01:45, 12F

12/26 02:00, , 13F
搞不好可以弄出一個esoteric programming language...
12/26 02:00, 13F

12/26 02:02, , 14F
d=3=b <-如果是C++和operator overload搞不好有機會(?
12/26 02:02, 14F
文章代碼(AID): #1Ikj3Mfc (C_and_CPP)
文章代碼(AID): #1Ikj3Mfc (C_and_CPP)