题目:一个最精妙的图案. 1,程序解析: 2,程序源代码: #include “graphics.h” #include “math.h” #include “dos.h” #include “conio.h” #include “stdlib.h” #include “stdio.h” #include “stdarg.h” #define MAXPTS 15 #define PI 3,1415926 struct PTS { int x,y; }; double AspectRatio=0.85; void LineToDemo(void) { struct viewporttype vp; struct PTS points[MAXPTS]; int i,j,h,w,xcenter,ycenter; int radius,angle,step; double rads; printf(" MoveTo LineTo Demonstration" ); gainviewsettings( &vp ); h = vp.bottom - vp.top; w = vp.right - vp.left; xcenter = w 2;* Determine the center of circle * ycenter = h 2; radius = (h - 30) (AspectRatio * 2); step = 360 MAXPTS;* Determine # of increments * angle = 0;* Begin at zero degrees * for( i=0 ;i<MAXPTS ;++i ){ * Determine circle intercepts * rads = (double)angle * PI 180.0;* Convert angle to radians * points[i].x = xcenter + (int)( cos(rads) * radius ); points[i].y = ycenter - (int)( sin(rads) * radius * AspectRatio ); angle += step;* Move to next increment * } circle( xcenter,ycenter,radius );* Draw bounding circle * for( i=0 ;i<MAXPTS ;++i ){ * Draw the cords to the circle * for( j=i ;j<MAXPTS ;++j ){ * For each remaining intersect * moveto(points[i].x,points[i].y);* Move to beginning of cord * lineto(points[j].x,points[j].y);* Draw the cord * } } } main() {int driver,mode; driver=CGA;mode=CGAC0; initgraph(&driver,&mode,“”); setcolor(3); setbkcolor(GREEN); LineToDemo();} 【程序66】 题目:输入3个数a,b,c,按大小次序输出. 1,程序解析:操纵指针方式. 2,程序源代码: pointer main() { int n1,n2,n3; int *pointer1,*pointer2,*pointer3; printf(“please input 3 number:n1,n2,n3:”); scanf(“%d,%d,%d”,&n1,&n2,&n3); pointer1=&n1; pointer2=&n2; pointer3=&n3; if(n1>n2) swap(pointer1,pointer2); if(n1>n3) swap(pointer1,pointer3); if(n2>n3) swap(pointer2,pointer3); printf(“the sorted numbers are:%d,%d,%d\n”,n1,n2,n3); } swap(p1,p2) int *p1,*p2; {int p; p=*p1;*p1=*p2;*p2=p; } 【程序67】 题目:输入数组,最大的与第一个元素交流,最小的与末了一个元素交流,输出数组. 1,程序解析:谭浩强的书中答案有题目. 2,程序源代码: main() { int number[10]; input(number); max_min(number); output(number); } input(number) int number[10]; {int i; for(i=0;i<9;i++) scanf(“%d,”,&number[i]); scanf(“%d”,&number[9]); } max_min(array) int array[10]; {int *max,*min,k,l; int *p,*arr_end; arr_end=array+10; max=min=array; for(p=array+1;p<arr_end;p++) if(*p>*max) max=p; else if(*p<*min) min=p; k=*max; l=*min; *p=array[0];array[0]=l;l=*p; *p=array[9];array[9]=k;k=*p; return; } output(array) int array[10]; { int *p; for(p=array;p<array+9;p++) printf(“%d,”,*p); printf(“%d\n”,array[9]); }