作者pangfeng (Ikari Gendou)
看板ACMCLUB
标题[转录][计程] 递回的常见错误
时间Tue Oct 14 10:25:59 2008
※ [本文转录自 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));
} 前面的,小抄传过来
● (振笔疾书) \
║\ ◥ ● ● ● ●
▆\\ ︻︶
║ ︻︶
║ ︻︶
║ ︻︶
║
H//
▆ H//
▆ H//
▆ H//
▆
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));
}
居然给我白纸 ...
● \
║\ ◥ ● ● ● ●
▆\\ ︻︶
║ ︻︶
║ ︻︶
║ ︻︶
║
H//
▆ H//
▆ H//
▆ H//
▆
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));
}
干没带啦 前面的不借我就举发你
● / \
║\ ◥ ● ● ● ●
▆\\ ︻︶
║ ︻︶
║ ︻︶
║ ︻︶
║
H//
▆ H//
▆ H//
▆ H//
▆
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));
}
拎北是墙壁啦
\
後面的,小抄传过来 |
● \ |
║\ ◥ ● ● ● ● |
▆\\ ︻︶
║ ︻︶
║ ︻︶
║ ︻︶
║ |
H//
▆ H//
▆ H//
▆ H//
▆ |
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));
}
这小抄是用哪国语言写的 ...
● \
║\ ◥ ● ● ● ●
▆\\ ︻︶
║ ︻︶
║ ︻︶
║ ︻︶
║
H//
▆ H//
▆ H//
▆ H//
▆
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));
}
怎麽有笔迹不一致的两种答案?!
● \
║\ ◥ ● ● ● ●
▆\\ ︻︶
║ ︻︶
║ ︻︶
║ ︻︶
║
H//
▆ H//
▆ H//
▆ H//
▆
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));
}
真蠢,没发现那是上一章的小抄
● / (埋头狂写)
║\ ◥ ● ● ● ●
▆\\ ︻︶
║ ︻︶
║ ︻︶
║ ︻︶
║
H//
▆ H//
▆ H//
▆ H//
▆
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));
}
屁啦 ... 哪来这麽多人
\
● ● ● ● ● ● ● ● ● ●
︻︶
║︻︶
║︻︶
║︻︶
║︻︶
║︻︶
║︻︶
║︻︶
║︻︶
║︻︶
║
H//
▆ H//
▆ H//
▆ H//
▆ H//
▆ H//
▆ H//
▆ H//
▆ H//
▆ H//
▆
写程式码出错是常有的事,找出并修正它才会有所成长。
现在放弃的话,比赛就结束了。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.240.15
1F:推 lmr3796:泪推最後两行,太感人啦!!! 10/13 23:31
2F:推 anfranion:大推一个! 10/13 23:32
3F:推 dennis2030:这图真的是画的太棒了 又很容易懂XD 10/13 23:33
4F:推 ming1053:太好笑啦XDD 10/13 23:43
5F:推 godgunman:水啦 10/13 23:49
6F:推 lockercho:笑倒XDDDD 10/13 23:52
7F:推 vanillaXleft:好笑+1 明白+1 10/13 23:55
8F:推 weijer0905:大推!!! 好笑+1 易懂+1 10/13 23:56
9F:推 LoganChien:大推!!! 10/14 00:00
10F:推 chenaren:太强惹吧 10/14 00:07
11F:推 sa072686: 大推!!! 和全域撞名没关系,会优先取区域的用 10/14 00:09
12F:推 matt7983:有笑有推XDDDDDD 10/14 00:11
13F:推 iForests:太北七了 XDDDDD 10/14 00:11
14F:推 gaga19900329:XDDDDDDD 10/14 00:12
15F:推 hrs113355:大推XDDDDDDDDDD 10/14 00:15
16F:推 fishead1116:XDDDDDDDDDDDD 10/14 00:16
17F:推 clywin123:太劲爆了XDDDDDD 10/14 00:35
18F:推 jyt0532:看到後面才发现下面的图跟那点是有关联的 推一个 10/14 00:44
19F:推 benck:推一个 10/14 00:45
20F:推 pangfeng:推强大的图. 10/14 09:23
21F:推 telgniw:好生动XD 10/14 09:24
22F:推 pangfeng:借转. 10/14 09:27
23F:推 strangechu:XDDDDDDDDD 10/14 09:27
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.84