程序6180.docx
- 文档编号:11712446
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:17
- 大小:19.15KB
程序6180.docx
《程序6180.docx》由会员分享,可在线阅读,更多相关《程序6180.docx(17页珍藏版)》请在冰点文库上搜索。
程序6180
【程序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()
{inti,j;
inta[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
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()
{
inti,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()
{
intx=360,y=160,driver=VGA,mode=VGAHI;
intnum=20,i;
inttop,bottom;
initgraph(&driver,&mode,"");
top=y-30;
bottom=y-30;
for(i=0;i { ellipse(250,250,0,360,top,bottom); top-=5; bottom+=5; } getch(); } ----------------------------------------------------------------------------- 【程序64】 题目: 利用ellipseandrectangle画图。 1.程序分析: 2.程序源代码: #include"stdio.h" #include"graphics.h" #include"conio.h" main() { intdriver=VGA,mode=VGAHI; inti,num=15,top=50; intleft=20,right=50; initgraph(&driver,&mode,""); for(i=0;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" #defineMAXPTS15 #definePI3.1415926 structPTS{ intx,y; }; doubleAspectRatio=0.85; voidLineToDemo(void) { structviewporttypevp; structPTSpoints[MAXPTS]; inti,j,h,w,xcenter,ycenter; intradius,angle,step; doublerads; printf("MoveTo/LineToDemonstration"); getviewsettings(&vp); h=vp.bottom-vp.top; w=vp.right-vp.left; xcenter=w/2;/*Determinethecenterofcircle*/ ycenter=h/2; radius=(h-30)/(AspectRatio*2); step=360/MAXPTS;/*Determine#ofincrements*/ angle=0;/*Beginatzerodegrees*/ for(i=0;i rads=(double)angle*PI/180.0;/*Convertangletoradians*/ points[i].x=xcenter+(int)(cos(rads)*radius); points[i].y=ycenter-(int)(sin(rads)*radius*AspectRatio); angle+=step;/*Movetonextincrement*/ } circle(xcenter,ycenter,radius);/*Drawboundingcircle*/ for(i=0;i for(j=i;j moveto(points[i].x,points[i].y);/*Movetobeginningofcord*/ lineto(points[j].x,points[j].y);/*Drawthecord*/ }}} main() {intdriver,mode; driver=CGA;mode=CGAC0; initgraph(&driver,&mode,""); setcolor(3); setbkcolor(GREEN); LineToDemo();}_ ----------------------------------------------------------------------------- 【程序66】 题目: 输入3个数a,b,c,按大小顺序输出。 1.程序分析: 利用指针方法。 2.程序源代码: /*pointer*/ main() { intn1,n2,n3; int*pointer1,*pointer2,*pointer3; printf("pleaseinput3number: 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("thesortednumbersare: %d,%d,%d\n",n1,n2,n3); } swap(p1,p2) int*p1,*p2; {intp; p=*p1;*p1=*p2;*p2=p; } ----------------------------------------------------------------------------- 【程序67】 题目: 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 1.程序分析: 谭浩强的书中答案有问题。 2.程序源代码: main() { intnumber[10]; input(number); max_min(number); output(number); } input(number) intnumber[10]; {inti; for(i=0;i<9;i++) scanf("%d,",&number[i]); scanf("%d",&number[9]); } max_min(array) intarray[10]; {int*max,*min,k,l; int*p,*arr_end; arr_end=array+10; max=min=array; for(p=array+1;p if(*p>*max)max=p; elseif(*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) intarray[10]; {int*p; for(p=array;p printf("%d,",*p); printf("%d\n",array[9]); } ----------------------------------------------------------------------------- 【程序68】 题目: 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 1.程序分析: 2.程序源代码: main() { intnumber[20],n,m,i; printf("thetotalnumbersis: "); scanf("%d",&n); printf("backm: "); scanf("%d",&m); for(i=0;i scanf("%d,",&number[i]); scanf("%d",&number[n-1]); move(number,n,m); for(i=0;i printf("%d,",number[i]); printf("%d",number[n-1]); } move(array,n,m) intn,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.程序源代码: #definenmax50 main() { inti,k,m,n,num[nmax],*p; printf("pleaseinputthetotalofnumbers: "); scanf("%d",&n); p=num; for(i=0;i *(p+i)=i+1; i=0; k=0; m=0; while(m { 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("%disleft\n",*p); } ----------------------------------------------------------------------------- 【程序70】 题目: 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 1.程序分析: 2.程序源代码: main() { intlen; char*str[20]; printf("pleaseinputastring: \n"); scanf("%s",str); len=length(str); printf("thestringhas%dcharacters.",len); } length(p) char*p; { intn; n=0; while(*p! ='\0') { n++; p++; } returnn; } 【程序71】 题目: 编写input()和output()函数输入,输出5个学生的数据记录。 1.程序分析: 2.程序源代码: #defineN5 structstudent {charnum[6]; charname[8]; intscore[4]; }stu[N]; input(stu) structstudentstu[]; {inti,j; for(i=0;i {printf("\npleaseinput%dof%d\n",i+1,N); printf("num: "); scanf("%s",stu[i].num); printf("name: "); scanf("%s",stu[i].name); for(j=0;j<3;j++) {printf("score%d.",j+1); scanf("%d",&stu[i].score[j]); } printf("\n"); } } print(stu) structstudentstu[]; {inti,j; printf("\nNo.NameSco1Sco2Sco3\n"); for(i=0;i {printf("%-6s%-10s",stu[i].num,stu[i].name); for(j=0;j<3;j++) printf("%-8d",stu[i].score[j]); printf("\n"); } } main() { input(); print(); } ----------------------------------------------------------------------------- 【程序72】 题目: 创建一个链表。 1.程序分析: 2.程序源代码: /*creatalist*/ #include"stdlib.h" #include"stdio.h" structlist {intdata; structlist*next; }; typedefstructlistnode; typedefnode*link; voidmain() {linkptr,head; intnum,i; ptr=(link)malloc(sizeof(node)); ptr=head; printf("pleaseinput5numbers==>\n"); for(i=0;i<=4;i++) { scanf("%d",&num); ptr->data=num; ptr->next=(link)malloc(sizeof(node)); if(i==4)ptr->next=NULL; elseptr=ptr->next; } ptr=head; while(ptr! =NULL) {printf("Thevalueis==>%d\n",ptr->data); ptr=ptr->next; } } ----------------------------------------------------------------------------- 【程序73】 题目: 反向输出一个链表。 1.程序分析: 2.程序源代码: /*reverseoutputalist*/ #include"stdlib.h" #include"stdio.h" structlist {intdata; structlist*next; }; typedefstructlistnode; typedefnode*link; voidmain() {linkptr,head,tail; intnum,i; tail=(link)malloc(sizeof(node)); tail->next=NULL; ptr=tail; printf("\npleaseinput5data==>\n"); for(i=0;i<=4;i++) { scanf("%d",&num); ptr->data=num; head=(link)malloc(sizeof(node)); head->next=ptr; ptr=head; } ptr=ptr->next; while(ptr! =NULL) {printf("Thevalueis==>%d\n",ptr->data); ptr=ptr->next; }} ----------------------------------------------------------------------------- 【程序74】 题目: 连接两个链表。 1.程序分析: 2.程序源代码: #include"stdlib.h" #include"stdio.h" structlist {intdata; structlist*next; }; typedefstructlistnode; typedefnode*link; linkdelete_node(linkpointer,linktmp) {if(tmp==NULL)/*deletefirstnode*/ returnpointer->next; else {if(tmp->next->next==NULL)/*deletelastnode*/ tmp->next=NULL; else/*deletetheothernode*/ tmp->next=tmp->next->next; returnpointer; } } voidselection_sort(linkpointer,intnum) {linktmp,btmp; inti,min; for(i=0;i { tmp=pointer; min=tmp->data; btmp=NULL; while(tmp->next) {if(min>tmp->next->data) {min=tmp->next->data; btmp=tmp; } tmp=tmp->next; } printf("\40: %d\n",min); pointer=delete_node(pointer,btmp); } } linkcreate_list(intarray[],intnum) {linktmp1,tmp2,pointer; inti; pointer=(link)malloc(sizeof(node)); pointer->data=array[0]; tmp1=pointer; for(i=1;i {tmp2=(link)malloc(sizeof(node)); tmp2->next=NULL; tmp2->data=array[i]; tmp1->next=tmp2; tmp1=tmp1->next; } returnpointer; } linkconcatenate(linkpointer1,linkpointer2) {linktmp; tmp=pointer1; while(tmp->next) tmp=tmp->next; tmp->next=pointer2; returnpointer1; } voidmain(void) {intarr1[]={3,12,8,9,11}; linkptr; ptr=create_list(arr1,5); selection_sort(ptr,5); } ----------------------------------------------------------------------------- 【程序75】 题目: 放松一下,算一道简单的题目。 1.程序分析: 2.程序源代码: main() { inti,n; for(i=1;i<5;i++) {n=0; if(i! =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 6180