[轉錄][計程] 遞迴的常見錯誤

看板ACMCLUB作者 (Ikari Gendou)時間17年前 (2008/10/14 10:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 b97902HW 看板] 作者: silentvow (沉沒) 看板: b97902HW 標題: [計程] 遞迴的常見錯誤 時間: Mon Oct 13 23:25:34 2008 這是一份簡單合法並使用遞迴的程式碼,以下是常見的錯誤情況。 #include <stdio.h> int func(int a){ if(a==0) return 0; return func(a-1) + 1; } void main(){ int n; scanf("%d", &n); printf("%d\n", func(n)); } 前面的,小抄傳過來 (振筆疾書) \ \ ● ● ● ● \\ // // // // 1. 沒有回傳值 #include <stdio.h> int func(int a){ if(a==0) return 0; func(a-1) + 1; } void main(){ int n; scanf("%d", &n); printf("%d\n", func(n)); } 居然給我白紙 ... \ \ ● ● ● ● \\ // // // // 2. 沒有基底或結束條件 #include <stdio.h> int func(int a){ return func(a-1) + 1; } void main(){ int n; scanf("%d", &n); printf("%d\n", func(n)); } 幹沒帶啦 前面的不借我就舉發你 / \ \ ● ● ● ● \\ // // // // 3. 遞迴傳入值錯誤 #include <stdio.h> int func(int a){ if(a==0) return 0; return func(a+1) + 1; } void main(){ int n; scanf("%d", &n); printf("%d\n", func(n)); } 拎北是牆壁啦 \ 後面的,小抄傳過來 | \ | \ ● ● ● ● | \\ // // // // | 4. 使用在不同函式內宣告的變數 #include <stdio.h> int func(int a){ if(a==0) return 0; return func(n-1) + 1; } void main(){ int n; scanf("%d", &n); printf("%d\n", func(n)); } 這小抄是用哪國語言寫的 ... \ \ ● ● ● ● \\ // // // // 5. 宣告和全域變數相同名稱的變數 #include <stdio.h> int a; int func(int a){ if(a==0) return 0; return func(a-1) + 1; } void main(){ int n; scanf("%d", &n); printf("%d\n", func(n)); } 怎麼有筆跡不一致的兩種答案?! \ \ ● ● ● ● \\ // // // // 6. 基底不正確 #include <stdio.h> int func(int a){ if(a==0) return -1; return func(a-1) + 1; } void main(){ int n; scanf("%d", &n); printf("%d\n", func(n)); } 真蠢,沒發現那是上一章的小抄 / (埋頭狂寫) \ ● ● ● ● \\ // // // // 7. 溢位 #include <stdio.h> int func(int a){ if(a==0) return 0; return func(a-1) + 1; } void main(){ printf("%d\n", func(2147483647)); } 屁啦 ... 哪來這麼多人 \ ● ● ● ● ● ● ● ● ● ● // // // // // // // // // // 寫程式碼出錯是常有的事,找出並修正它才會有所成長。 現在放棄的話,比賽就結束了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.240.15

10/13 23:31,
淚推最後兩行,太感人啦!!!
10/13 23:31

10/13 23:32,
大推一個!
10/13 23:32

10/13 23:33,
這圖真的是畫的太棒了 又很容易懂XD
10/13 23:33

10/13 23:43,
太好笑啦XDD
10/13 23:43

10/13 23:49,
水啦
10/13 23:49

10/13 23:52,
笑倒XDDDD
10/13 23:52

10/13 23:55,
好笑+1 明白+1
10/13 23:55

10/13 23:56,
大推!!! 好笑+1 易懂+1
10/13 23:56

10/14 00:00,
大推!!!
10/14 00:00

10/14 00:07,
太強惹吧
10/14 00:07

10/14 00:09,
大推!!! 和全域撞名沒關係,會優先取區域的用
10/14 00:09

10/14 00:11,
有笑有推XDDDDDD
10/14 00:11

10/14 00:11,
太北七了 XDDDDD
10/14 00:11

10/14 00:12,
XDDDDDDD
10/14 00:12

10/14 00:15,
大推XDDDDDDDDDD
10/14 00:15

10/14 00:16,
XDDDDDDDDDDDD
10/14 00:16

10/14 00:35,
太勁爆了XDDDDDD
10/14 00:35

10/14 00:44,
看到後面才發現下面的圖跟那點是有關聯的 推一個
10/14 00:44

10/14 00:45,
推一個
10/14 00:45

10/14 09:23,
推強大的圖.
10/14 09:23

10/14 09:24,
好生動XD
10/14 09:24

10/14 09:27,
借轉.
10/14 09:27

10/14 09:27,
XDDDDDDDDD
10/14 09:27
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.84
文章代碼(AID): #18z0Culf (ACMCLUB)