点击上方“望麓自卑”
5,6,4,3,9 9,3,4,6,5 #includeconio.h #includestdio.h longpower(intn) { inti; longresult=1; for(i=1;i=n;i++) result=10*result; returnresult; } voidmain() { longnum,n,j; intcount=1,tmpcount; clrscr(); printf(Pleaseinputanumber(0-):); scanf(%ld,num); n=num; while((n=n/10)!=0) count++; printf(\n%ldisa%ddigits.\n\n,num,count); tmpcount=count;//temporarytmpcountforlateruseinstatementA n=num; while(count--1) { j=power(count); printf(%d,,n/j); n=n%j; } printf(%d\n,n); n=num; while(tmpcount--1)//statementA { printf(%d,,n%10); n=n/10; } printf(%d\n,n); getch(); } 3、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。主函数:①输入任意10个正整数给数组;②调用SUB1对数组进行排序;③从键盘输入一个正整数,调用SUB2将其插入该数组。 #includeconio.h #includestdio.h voidmain() { inti,k,a[12]={0};//a[0]fornouse voidsub1(intb[]),sub2(intb[],intk); clrscr(); printf(Pleaseinput10numbers:); for(i=1;i=10;i++) scanf(%d,a[i]); getchar(); sub1(a); for(i=1;i=10;i++) printf(\na[%d]=%d\n,i,a[i]); printf(\n\npleaseinputanumbertobeinsertedintothearray:); scanf(%d,k); sub2(a,k); for(i=1;i=11;i++) printf(\na[%d]=%d\n,i,a[i]); puts(\nAnykeytoexit!); getch(); } voidsub1(b) intb[]; { inti,j,t; for(i=1;i10;i++)//thefirstoneisalwaysthesmallest for(j=i;j=10;j++) if(b[i]b[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } } voidsub2(intb[],intk) { inti; for(i=10;i=1;i--) { if(kb[i]) b[i+1]=b[i]; else { b[i+1]=k; break; } } } 4、编写函数:(1)用选择法将数组排成降序的函数----SUB1;(2)用折半查找法查找某数是否在给定的数组当中的函数----SUB2。主函数:输入任意10个正整数给数组,调用SUB1对数组进行排序,从键盘输入一个正整数,调用SUB2在数组中进行查找,找到后输出“OK”,没有找到则输出“NOFOUND!”。 #includeconio.h #includestdio.h voidmain() { inti,key,a[11]={0},sub1(),sub2(); printf(pleaseinput10number:); for(i=1;i=10;i++) scanf(%d,a[i]); getchar(); sub1(a); for(i=0;i=10;i++) printf(a[%d]=%d,,i,a[i]); printf(\npleaseinputakeynumber:); scanf(%d,key); sub2(a,key,1,10); getch(); } intsub1(intb[]) { intt,i,j,post; for(i=1;i10;i++) { post=i; for(j=i+1;j=10;j++) if(b[post]b[j]) post=j; if(post!=i) { t=b[i]; b[i]=b[post]; b[post]=t;} } return0; } intsub2(intc[],intk,intn0,intn1) { inti=n0,j=n1,m; m=(i+j)/2; while(i=j) { if(kc[m]) j=m-1; if(kc[m]) i=m+1; if(k==c[m]) break; m=(i+j)/2; } if(k==c[m]) printf(OK!\n); else printf(NOFOUND!\n); return0; } 5、编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排列,然后将这两个数组合并成一个升序数组。 #includestdio.h #includeconio.h voidmain() { inti,j,k,a[6]={0},b[6]={0},c[11]={0},sub1(); clrscr(); printf(\npleaseinput5intnumberstoarray1:); for(i=1;i=5;i++)//a[0]fornouse scanf(%d,a[i]); getchar(); sub1(a,5); printf(\npleaseinput5intnumberstoarray2:); for(i=1;i=5;i++)//b[0]fornouse scanf(%d,b[i]); getchar(); sub1(b,5); printf(\nthesortedarrayais:\n\n); for(i=1;i=5;i++) printf(a[%d]=%d,i,a[i]); printf(\n); printf(\nthesortedarraybis:\n\n); for(i=1;i=5;i++) printf(b[%d]=%d,i,b[i]); k=i=j=1; while(i=5j=5) if(a[i]b[j]) c[k++]=a[i++];//c[0]fornouse else c[k++]=b[j++]; if(ij)//appendingtherestonesinarraya for(;i=5;i++) c[k++]=a[i]; else//appendingtherestonesinarrayb for(;j=5;j++) c[k++]=b[j]; printf(\n\n); printf(\nthemergedarraycis:\n\n); for(k=1;k=10;k++) { if(k==6) printf(\n); printf(c[%d]=%d,k,c[k]); } while(!kbhit()); } intsub1(intb[],intn) { intt,i,j,post; for(i=1;in;i++) { post=i; for(j=i+1;j=n;j++) if(b[post]b[j]) post=j; if(post!=i)j {j t=b[i]; b[i]=b[post]; b[post]=t; } } return0; } 6、耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。 /* //approachone #defineN13 #includestdio.h #includeconio.h structperson { intnumber;//itsorderintheoriginalcircle intnextp;//recorditsnextperson }; structpersonlink[N+1];//link[0]fornouse voidmain() { inti,count,next;//countfor12persons,and //nextforthepersonnotoutofcircleyet clrscr(); for(i=1;i=N;i++) { link[i].number=i;//numberingeachperson if(i==N) link[i].nextp=1; else link[i].nextp=i+1;//numberingeachnextperson } printf(\nThesequenceoutofthecircleis:\n); for(next=1,count=1;countN;count++)//countuntil12persons { i=1; while(i!=3)//icounts1,2,3 { do//skiptheoneswhosenumbersarezero next=link[next].nextp; while(link[next].number==0);//endofdo i++; } printf(%3d,link[next].number); link[next].number=0;//indicateoutofcirclealready do//startfromtheoneswhosenumbersarenotzeronexttime next=link[next].nextp; while(link[next].number==0); } printf(\n\nThebetrayerofthemis:); for(i=1;i=N;i++) if(link[i].number) printf(%3d\n,link[i].number); getch(); } */ //approachtwousingcycliclist #defineN13 #defineLENsizeof(structperson) #includestdio.h #includeconio.h #includealloc.h #includestdlib.h //structperson//permitstructplacedhere// //{ //intnumber; //structperson*next; //}; voidmain() { inti,count; structperson//orpermitstructplacedherealso// { intnumber; structperson*next; }; structperson*head,*p1,*p2; clrscr(); head=p2=NULL; for(i=1;i=N;i++) { p1=(structperson*)malloc(LEN); p1-number=i; if(head==NULL) head=p1; else p2-next=p1; p2=p1; } p2-next=head; printf(\nthesequenceoutofthecircleis:\n); for(count=1;countN;count++) { i=1; while(i!=3) { p1=head; head=head-next; i++; } p2=head; printf(%3d,p2-number); p1-next=head=p2-next; free(p2); } printf(\nThebetrayerofthemis:\n%3d,head-number); getch(); } 明日资料预告: 微观经济学试题汇总(4-7章) 微观经济学简答题 语文模拟试卷2 普通化学复习资料 请密切白癜风的最佳治疗方法北京医院治疗白癜风
|