分析一下C语言的一个作图题(关于函数嵌套和调用的),要详细步骤

Python021

分析一下C语言的一个作图题(关于函数嵌套和调用的),要详细步骤,第1张

你也可以看一下如下这几个简单的递归

/**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

}