经典C例题与答案(61~70).pdf
.:.:经典c程序100例=61-70:.:.:.:经典c程序100例=61-70:.:.经典c程序100例=61-70经典c程序100例=61-70【程序61】题目:打印出杨辉三角形(要求打印出10行如下图)1.程序分析:1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 2.程序源代码:#include stdio.h#include conio.h main()int i,j;int a1010;printf(n);for(i=0;i10;i+)ai0=1;aii=1;for(i=2;i10;i+)for(j=1;ji;j+)aij=ai-1j-1+ai-1j;for(i=0;i10;i+)for(j=0;j=i;j+)printf(%5d,aij);printf(n);getch();=【程序62】题目:学习putpixel画点。1.程序分析:2.程序源代码:#include stdio.h#include conio.h#include graphics.h main()int i,j,driver=VGA,mode=VGAHI;initgraph(&driver,&mode,);setbkcolor(YELLOW);for(i=50;i=230;i+=20)for(j=50;j=230;j+)putpixel(i,j,1);for(j=50;j=230;j+=20)for(i=50;i=230;i+)putpixel(i,j,1);getch();=【程序63】题目:画椭圆ellipse 1.程序分析:2.程序源代码:Page 1 of 62012-4-11file:/D:st-editCzl100example6170.htm#include stdio.h#include graphics.h#include conio.h main()int x=260,y=160,driver=VGA,mode=VGAHI;int num=20,i;int top,bottom;initgraph(&driver,&mode,);top=y-30;bottom=y-30;for(i=0;inum;i+)ellipse(x,250,0,360,top,bottom);top-=5;bottom+=5;getch();=【程序64】题目:利用ellipse and rectangle 画图。1.程序分析:2.程序源代码:#include stdio.h#include graphics.h#include conio.h main()int driver=VGA,mode=VGAHI;int i,num=15,top=50;int left=20,right=50;initgraph(&driver,&mode,);for(i=0;inum;i+)ellipse(250,250,0,360,right,left);ellipse(250,250,0,360,20,top);rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2);right+=5;left+=5;top+=10;getch();=【程序65】题目:一个最优美的图案。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;Page 2 of 62012-4-11file:/D:st-editCzl100example6170.htmdouble AspectRatio=0.85;void LineToDemo(void)struct viewporttype vp;struct PTS pointsMAXPTS;int i,j,h,w,xcenter,ycenter;int radius,angle,step;double rads;printf(MoveTo/LineTo Demonstration);getviewsettings(&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;iMAXPTS;+i)/*Determine circle intercepts*/rads=(double)angle*PI/180.0;/*Convert angle to radians*/pointsi.x=xcenter+(int)(cos(rads)*radius);pointsi.y=ycenter-(int)(sin(rads)*radius*AspectRatio);angle+=step;/*Move to next increment*/circle(xcenter,ycenter,radius);/*Draw bounding circle*/for(i=0;iMAXPTS;+i)/*Draw the cords to the circle*/for(j=i;jn2)swap(pointer1,pointer2);if(n1n3)swap(pointer1,pointer3);if(n2n3)swap(pointer2,pointer3);Page 3 of 62012-4-11file:/D:st-editCzl100example6170.htm printf(the sorted numbers are:%d,%d,%dn,n1,n2,n3);getch();swap(p1,p2)int*p1,*p2;int p;p=*p1;*p1=*p2;*p2=p;=【程序67】题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。1.程序分析:谭浩强的书中答案有问题。2.程序源代码:#include stdio.h#include conio.h main()int number10;input(number);max_min(number);output(number);getch();input(number)int number10;int i;for(i=0;i9;i+)scanf(%d,&numberi);scanf(%d,&number9);max_min(array)int array10;int*max,*min,k,l;int*p,*arr_end;arr_end=array+10;max=min=array;for(p=array+1;p*max)max=p;else if(*p*min)min=p;k=*max;l=*min;*p=array0;array0=l;l=*p;*p=array9;array9=k;k=*p;return;output(array)int array10;int*p;for(p=array;parray+9;p+)printf(%d,*p);printf(%dn,array9);=【程序68】题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 1.程序分析:2.程序源代码:#include stdio.h Page 4 of 62012-4-11file:/D:st-editCzl100example6170.htm#include conio.h main()int number20,n,m,i;printf(the total numbers is:);scanf(%d,&n);printf(back m:);scanf(%d,&m);for(i=0;in-1;i+)scanf(%d,&numberi);scanf(%d,&numbern-1);move(number,n,m);for(i=0;iarray;p-)*p=*(p-1);*array=array_end;m-;if(m0)move(array,n,m);=【程序69】题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出 圈子,问最后留下的是原来第几号的那位。1.程序分析:2.程序源代码:#include stdio.h#include conio.h#define nmax 50 main()int i,k,m,n,numnmax,*p;printf(please input the total of numbers:);scanf(%d,&n);p=num;for(i=0;in;i+)*(p+i)=i+1;i=0;k=0;m=0;while(mn-1)if(*(p+i)!=0)k+;if(k=3)*(p+i)=0;k=0;m+;i+;if(i=n)i=0;while(*p=0)p+;printf(%d is leftn,*p);getch();Page 5 of 62012-4-11file:/D:st-editCzl100example6170.htm=【程序70】题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。1.程序分析:2.程序源代码:#include stdio.h#include conio.h main()int len;char*str20;printf(please input a string:n);scanf(%s,str);len=length(str);printf(the string has%d characters.,len);getch();length(p)char*p;int n;n=0;while(*p!=0)n+;p+;return n;Page 6 of 62012-4-11file:/D:st-editCzl100example6170.htm