你也可以看一下如下这几个简单的递归:
/**2015年2月24日20:42:32 by: 我爱编程**//**功能:简单递归讲解**/
#include<stdio.h>
void p(int w)
{
if(w>0)
{
p(w-1)
printf("%d\n",w)
}
}
void main()
{
p(3)
} /**2015年2月24日20:42:32 by: 我爱编程**/
/**功能:求3的阶乘**/
#include<stdio.h>
int p(int w)
{
if (w == 0)
return 1
else
return p(w-1) * w
}
void main()
{
printf("%d\n",p(3))
}
你没有把graphics.h放在头文件夹下吧,还是没有这个头文件?这是 graphics.h的代码,自己再TC或VC安装目录下的include文件夹下建个graphics.h文件(用记事本就行)
/* graphics.h
Definitions for Graphics Package.
Copyright (c) Borland International 1987,1988
All Rights Reserved.
*/
#if __STDC__
#define _Cdecl
#else
#define _Cdecl cdecl
#endif
#if !defined(__GRAPHX_DEF_)
#define __GRAPHX_DEF_
enum graphics_errors { /* graphresult error return codes */
grOk = 0,
grNoInitGraph= -1,
grNotDetected= -2,
grFileNotFound= -3,
grInvalidDriver= -4,
grNoLoadMem= -5,
grNoScanMem= -6,
grNoFloodMem= -7,
grFontNotFound= -8,
grNoFontMem= -9,
grInvalidMode= -10,
grError = -11, /* generic error */
grIOerror= -12,
grInvalidFont= -13,
grInvalidFontNum = -14,
grInvalidVersion = -18
}
enum graphics_drivers { /* define graphics drivers */
DETECT, /* requests autodetection */
CGA, MCGA, EGA, EGA64, EGAMONO, IBM8514, /* 1 - 6 */
HERCMONO, ATT400, VGA, PC3270, /* 7 - 10 */
CURRENT_DRIVER = -1
}
enum graphics_modes { /* graphics modes for each driver */
CGAC0 = 0, /* 320x200 palette 01 page */
CGAC1 = 1, /* 320x200 palette 11 page */
CGAC2 = 2, /* 320x200 palette 2: 1 page */
CGAC3 = 3, /* 320x200 palette 31 page */
CGAHI = 4, /* 640x200 1 page */
MCGAC0 = 0, /* 320x200 palette 01 page */
MCGAC1 = 1, /* 320x200 palette 11 page */
MCGAC2 = 2, /* 320x200 palette 21 page */
MCGAC3 = 3, /* 320x200 palette 31 page */
MCGAMED= 4, /* 640x200 1 page */
MCGAHI = 5, /* 640x480 1 page */
EGALO = 0, /* 640x200 16 color 4 pages */
EGAHI = 1, /* 640x350 16 color 2 pages */
EGA64LO= 0, /* 640x200 16 color 1 page */
EGA64HI= 1, /* 640x350 4 color 1 page */
EGAMONOHI = 0, /* 640x350 64K on card, 1 page - 256K on card, 4 pages */
HERCMONOHI = 0, /* 720x348 2 pages */
ATT400C0 = 0, /* 320x200 palette 01 page */
ATT400C1 = 1, /* 320x200 palette 11 page */
ATT400C2 = 2, /* 320x200 palette 21 page */
ATT400C3 = 3, /* 320x200 palette 31 page */
ATT400MED = 4, /* 640x200 1 page */
ATT400HI = 5, /* 640x400 1 page */
VGALO = 0, /* 640x200 16 color 4 pages */
VGAMED = 1, /* 640x350 16 color 2 pages */
VGAHI = 2, /* 640x480 16 color 1 page */
PC3270HI = 0, /* 720x350 1 page */
IBM8514LO = 0, /* 640x480 256 colors */
IBM8514HI = 1 /*1024x768 256 colors */
}
/* Colors for setpalette and setallpalette */
#if !defined(__COLORS)
#define __COLORS
enum COLORS {
BLACK, /* dark colors */
BLUE,
GREEN,
CYAN,
RED,
MAGENTA,
BROWN,
LIGHTGRAY,
DARKGRAY, /* light colors */
LIGHTBLUE,
LIGHTGREEN,
LIGHTCYAN,
LIGHTRED,
LIGHTMAGENTA,
YELLOW,
WHITE
}
#endif
enum CGA_COLORS {
CGA_LIGHTGREEN = 1, /* Palette C0 Color Names */
CGA_LIGHTRED = 2,
CGA_YELLOW= 3,
CGA_LIGHTCYAN = 1, /* Palette C1 Color Names */
CGA_LIGHTMAGENTA = 2,
CGA_WHITE= 3,
CGA_GREEN= 1, /* Palette C2 Color Names */
CGA_RED= 2,
CGA_BROWN= 3,
CGA_CYAN= 1, /* Palette C3 Color Names */
CGA_MAGENTA= 2,
CGA_LIGHTGRAY = 3
}
enum EGA_COLORS {
EGA_BLACK = 0, /* dark colors */
EGA_BLUE = 1,
EGA_GREEN = 2,
EGA_CYAN = 3,
EGA_RED = 4,
EGA_MAGENTA = 5,
EGA_BROWN = 20,
EGA_LIGHTGRAY = 7,
EGA_DARKGRAY = 56, /* light colors */
EGA_LIGHTBLUE = 57,
EGA_LIGHTGREEN = 58,
EGA_LIGHTCYAN = 59,
EGA_LIGHTRED = 60,
EGA_LIGHTMAGENTA = 61,
EGA_YELLOW = 62,
EGA_WHITE = 63
}
enum line_styles { /* Line styles for get/setlinestyle */
SOLID_LINE = 0,
DOTTED_LINE = 1,
CENTER_LINE = 2,
DASHED_LINE = 3,
USERBIT_LINE = 4, /* User defined line style */
}
enum line_widths { /* Line widths for get/setlinestyle */
NORM_WIDTH = 1,
THICK_WIDTH = 3,
}
enum font_names {
DEFAULT_FONT = 0, /* 8x8 bit mapped font */
TRIPLEX_FONT = 1, /* "Stroked" fonts */
SMALL_FONT = 2,
SANS_SERIF_FONT = 3,
GOTHIC_FONT = 4
}
#define HORIZ_DIR 0 /* left to right */
#define VERT_DIR 1 /* bottom to top */
#define USER_CHAR_SIZE 0 /* user-defined char size */
enum fill_patterns { /* Fill patterns for get/setfillstyle */
EMPTY_FILL, /* fills area in background color */
SOLID_FILL, /* fills area in solid fill color */
LINE_FILL, /* --- fill */
LTSLASH_FILL, /* /// fill */
SLASH_FILL, /* /// fill with thick lines */
BKSLASH_FILL, /* \\\ fill with thick lines */
LTBKSLASH_FILL, /* \\\ fill */
HATCH_FILL, /* light hatch fill */
XHATCH_FILL, /* heavy cross hatch fill */
INTERLEAVE_FILL, /* interleaving line fill */
WIDE_DOT_FILL, /* Widely spaced dot fill */
CLOSE_DOT_FILL, /* Closely spaced dot fill */
USER_FILL /* user defined fill */
}
enum putimage_ops { /* BitBlt operators for putimage */
COPY_PUT, /* MOV */
XOR_PUT, /* XOR */
OR_PUT, /* OR */
AND_PUT, /* AND */
NOT_PUT /* NOT */
}
enum text_just { /* Horizontal and vertical justification
for settextjustify */
LEFT_TEXT = 0,
CENTER_TEXT = 1,
RIGHT_TEXT = 2,
BOTTOM_TEXT = 0,
/* CENTER_TEXT = 1, already defined above */
TOP_TEXT = 2
}
#define MAXCOLORS 15
struct palettetype {
unsigned char size
signed char colors[MAXCOLORS+1]
}
struct linesettingstype {
int linestyle
unsigned upattern
int thickness
}
struct textsettingstype {
int font
int direction
int charsize
int horiz
int vert
}
struct fillsettingstype {
int pattern
int color
}
struct pointtype {
int x, y
}
struct viewporttype {
int left, top, right, bottom
int clip
}
struct arccoordstype {
int x, y
int xstart, ystart, xend, yend
}
voidfar _Cdecl arc(int x, int y, int stangle, int endangle,
int radius)
voidfar _Cdecl bar(int left, int top, int right, int bottom)
voidfar _Cdecl bar3d(int left, int top, int right, int bottom,
int depth, int topflag)
voidfar _Cdecl circle(int x, int y, int radius)
voidfar _Cdecl cleardevice(void)
voidfar _Cdecl clearviewport(void)
voidfar _Cdecl closegraph(void)
voidfar _Cdecl detectgraph(int far *graphdriver,int far *graphmode)
voidfar _Cdecl drawpoly(int numpoints, int far *polypoints)
voidfar _Cdecl ellipse(int x, int y, int stangle, int endangle,
int xradius, int yradius)
voidfar _Cdecl fillellipse( int x, int y, int xradius, int yradius )
voidfar _Cdecl fillpoly(int numpoints, int far *polypoints)
voidfar _Cdecl floodfill(int x, int y, int border)
voidfar _Cdecl getarccoords(struct arccoordstype far *arccoords)
voidfar _Cdecl getaspectratio(int far *xasp, int far *yasp)
intfar _Cdecl getbkcolor(void)
intfar _Cdecl getcolor(void)
struct palettetype * far _Cdecl getdefaultpalette( void )
char *far _Cdecl getdrivername( void )
voidfar _Cdecl getfillpattern(char far *pattern)
voidfar _Cdecl getfillsettings(struct fillsettingstype far *fillinfo)
intfar _Cdecl getgraphmode(void)
voidfar _Cdecl getimage(int left, int top, int right, int bottom,
void far *bitmap)
voidfar _Cdecl getlinesettings(struct linesettingstype far *lineinfo)
intfar _Cdecl getmaxcolor(void)
intfar _Cdecl getmaxmode(void)
intfar _Cdecl getmaxx(void)
intfar _Cdecl getmaxy(void)
char *far _Cdecl getmodename( int mode_number )
voidfar _Cdecl getmoderange(int graphdriver, int far *lomode,
int far *himode)
unsigned far _Cdecl getpixel(int x, int y)
voidfar _Cdecl getpalette(struct palettetype far *palette)
intfar _Cdecl getpalettesize( void )
voidfar _Cdecl gettextsettings(struct textsettingstype far *texttypeinfo)
voidfar _Cdecl getviewsettings(struct viewporttype far *viewport)
intfar _Cdecl getx(void)
intfar _Cdecl gety(void)
voidfar _Cdecl graphdefaults(void)
char *far _Cdecl grapherrormsg(int errorcode)
voidfar _Cdecl _graphfreemem(void far *ptr, unsigned size)
void far * far _Cdecl _graphgetmem(unsigned size)
intfar _Cdecl graphresult(void)
unsigned far _Cdecl imagesize(int left, int top, int right, int bottom)
voidfar _Cdecl initgraph(int far *graphdriver,
int far *graphmode,
char far *pathtodriver)
intfar _Cdecl installuserdriver( char far *name, int huge (*detect)(void) )
intfar _Cdecl installuserfont( char far *name )
voidfar _Cdecl line(int x1, int y1, int x2, int y2)
voidfar _Cdecl linerel(int dx, int dy)
voidfar _Cdecl lineto(int x, int y)
voidfar _Cdecl moverel(int dx, int dy)
voidfar _Cdecl moveto(int x, int y)
voidfar _Cdecl outtext(char far *textstring)
voidfar _Cdecl outtextxy(int x, int y, char far *textstring)
voidfar _Cdecl pieslice(int x, int y, int stangle, int endangle,
int radius)
voidfar _Cdecl putimage(int left, int top, void far *bitmap, int op)
voidfar _Cdecl putpixel(int x, int y, int color)
voidfar _Cdecl rectangle(int left, int top, int right, int bottom)
voidfar _Cdecl restorecrtmode(void)
voidfar _Cdecl sector( int X, int Y, int StAngle, int EndAngle,
int XRadius, int YRadius )
voidfar _Cdecl setactivepage(int page)
voidfar _Cdecl setallpalette(struct palettetype far *palette)
voidfar _Cdecl setaspectratio( int xasp, int yasp )
voidfar _Cdecl setbkcolor(int color)
voidfar _Cdecl setcolor(int color)
voidfar _Cdecl setfillpattern(char far *upattern, int color)
voidfar _Cdecl setfillstyle(int pattern, int color)
unsigned far _Cdecl setgraphbufsize(unsigned bufsize)
voidfar _Cdecl setgraphmode(int mode)
voidfar _Cdecl setlinestyle(int linestyle, unsigned upattern,
int thickness)
voidfar _Cdecl setpalette(int colornum, int color)
voidfar _Cdecl setrgbpalette(int colornum,
int red, int green, int blue)
voidfar _Cdecl settextjustify(int horiz, int vert)
voidfar _Cdecl settextstyle(int font, int direction, int charsize)
voidfar _Cdecl setusercharsize(int multx, int divx,
int multy, int divy)
voidfar _Cdecl setviewport(int left, int top, int right, int bottom,
int clip)
voidfar _Cdecl setvisualpage(int page)
voidfar _Cdecl setwritemode( int mode )
intfar _Cdecl textheight(char far *textstring)
intfar _Cdecl textwidth(char far *textstring)
/***** graphics drivers *****/
int_Cdecl registerbgidriver(void (*driver)(void))
intfar _Cdecl registerfarbgidriver(void far *driver)
/* !! These "functions" are NOT user-callable !! */
/* !! They are there just so you can link in graphics drivers !! */
void_Cdecl CGA_driver(void)
void_Cdecl EGAVGA_driver(void)
void_Cdecl IBM8514_driver(void)
void_Cdecl Herc_driver(void)
void_Cdecl ATT_driver(void)
void_Cdecl PC3270_driver(void)
extern int far _Cdecl CGA_driver_far[]
extern int far _Cdecl EGAVGA_driver_far[]
extern int far _Cdecl IBM8514_driver_far[]
extern int far _Cdecl Herc_driver_far[]
extern int far _Cdecl ATT_driver_far[]
extern int far _Cdecl PC3270_driver_far[]
/***** graphics fonts *****/
int_Cdecl registerbgifont(void (*font)(void))
intfar _Cdecl registerfarbgifont(void far *font)
/* !! These "functions" are NOT user-callable, !! */
/* !! they are there just so you can link in fonts !! */
void_Cdecl triplex_font(void)
void_Cdecl small_font(void)
void_Cdecl sansserif_font(void)
void_Cdecl gothic_font(void)
extern int far _Cdecl triplex_font_far[]
extern int far _Cdecl small_font_far[]
extern int far _Cdecl sansserif_font_far[]
extern int far _Cdecl gothic_font_far[]
#endif
#include<stdio.h>int main()
{
int i=0,j=0,k,f1=1,f2=1
for(i=1i<=5i++)
{
k=1
f2=f1
for(j=1j<=ij++)
{
printf("%d ",k*f2)
k=k*10+j*2
f2*=-1
}
printf("\n")
f1*=-1
}
return 0
}