打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
经典程序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.程序源代码:main(){int i,j;int a[10][10];printf("\n");for(i=0;i<10;i++) {a[i][0]=1; a[i][i]=1;}for(i=2;i<10;i++) for(j=1;j<i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<10;i++) {for(j=0;j<=i;j++) printf("%5d",a[i][j]); printf("\n"); }}==============================================================【程序62】题目:学习putpixel画点。1.程序分析:            2.程序源代码:#include "stdio.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);}==============================================================【程序63】题目:画椭圆ellipse   1.程序分析:2.程序源代码:#include "stdio.h"#include "graphics.h"#include "conio.h"main(){int x=360,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;i<num;i++){ellipse(250,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;i<num;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.1415926struct 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" );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 ; 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]);}==============================================================【程序68】题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数1.程序分析:2.程序源代码:main(){int number[20],n,m,i;printf("the total numbers is:");scanf("%d",&n);printf("back m:");scanf("%d",&m);for(i=0;i<n-1;i++) scanf("%d,",&number[i]);scanf("%d",&number[n-1]);move(number,n,m);for(i=0;i<n-1;i++) printf("%d,",number[i]);printf("%d",number[n-1]);}move(array,n,m)int n,m,array[20];{int *p,array_end;array_end=*(array+n-1);for(p=array+n-1;p>array;p--) *p=*(p-1); *array=array_end; m--; if(m>0) move(array,n,m);}==============================================================【程序69】题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出   圈子,问最后留下的是原来第几号的那位。1. 程序分析:2.程序源代码:#define nmax 50main(){int i,k,m,n,num[nmax],*p;printf("please input the total of numbers:");scanf("%d",&n);p=num;for(i=0;i<n;i++) *(p+i)=i+1; i=0; k=0; m=0; while(m<n-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 left\n",*p);}==============================================================【程序70】题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。   1.程序分析:2.程序源代码:main(){int len;char *str[20];printf("please input a string:\n");scanf("%s",str);len=length(str);printf("the string has %d characters.",len);}length(p)char *p;{int n;n=0;while(*p!=‘\0‘){ n++; p++;}return n;}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
第八章 函 数
C语言数组练习题
浙江理工大学c语言期末考试试卷
C语言数组名作函数参数
2011年计算机等级二级C语言笔试题及答案(2-6)
C语言经典100例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服