[转录][计程] 递回的常见错误

楼主: pangfeng (Ikari Gendou)   2008-10-14 10:25:59
※ [本文转录自 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//▆
写程式码出错是常有的事,找出并修正它才会有所成长。
现在放弃的话,比赛就结束了。
作者: lmr3796 (Toro)   0000-00-00 00:00:00
泪推最后两行,太感人啦!!!
作者: anfranion (南‧生命的意義是經歷)   0000-00-00 00:00:00
大推一个!
作者: dennis2030 (绿豆)   0000-00-00 00:00:00
这图真的是画的太棒了 又很容易懂XD
作者: ming1053 (ming)   0000-00-00 00:00:00
太好笑啦XDD
作者: godgunman (its嘎嘎面)   0000-00-00 00:00:00
水啦
作者: lockercho (拉颗邱)   0000-00-00 00:00:00
笑倒XDDDD
作者: vanillaXleft   0000-00-00 00:00:00
好笑+1 明白+1
作者: weijer0905 ( )   0000-00-00 00:00:00
大推!!! 好笑+1 易懂+1
作者: LoganChien (简子翔)   0000-00-00 00:00:00
大推!!!
作者: chenaren (′˙ω˙‵)   0000-00-00 00:00:00
太强惹吧
作者: sa072686 (小红)   0000-00-00 00:00:00
大推!!! 和全域撞名没关系,会优先取区域的用
作者: matt7983 (耍肥)   0000-00-00 00:00:00
有笑有推XDDDDDD
作者: iForests (森林)   0000-00-00 00:00:00
太北七了 XDDDDD
作者: gaga19900329 (GagaKnight)   0000-00-00 00:00:00
XDDDDDDD
作者: hrs113355 (小分分)   0000-00-00 00:00:00
大推XDDDDDDDDDD
作者: fishead1116 (DD鱼)   0000-00-00 00:00:00
XDDDDDDDDDDDD
作者: clywin123 (*0)   0000-00-00 00:00:00
太劲爆了XDDDDDD
作者: jyt0532 (J)   0000-00-00 00:00:00
看到后面才发现下面的图跟那点是有关联的 推一个
作者: benck (小伦)   0000-00-00 00:00:00
推一个
楼主: pangfeng (Ikari Gendou)   0000-00-00 00:00:00
推强大的图.
作者: telgniw (易)   0000-00-00 00:00:00
好生动XD
楼主: pangfeng (Ikari Gendou)   0000-00-00 00:00:00
借转.
作者: strangechu (電冰箱)   0000-00-00 00:00:00
XDDDDDDDDD

Links booklink

Contact Us: admin [ a t ] ucptt.com