(完整版)C语言代码大全_第1页
(完整版)C语言代码大全_第2页
(完整版)C语言代码大全_第3页
(完整版)C语言代码大全_第4页
(完整版)C语言代码大全_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘自宋鲁生程序设计大赛摘自宋鲁生程序设计大赛乘法口诀表#include#includevoidmain(void)inti,j,x,y;clrscr();printf(nn*乘法口诀表*nn);x=9;y=5;for(i=1;i=9;i+)gotoxy(x,y);printf(%2d,i);x+=3;x=7;y=6;for(i=1;i=9;i+)gotoxy(x,y);printf(%2d,i);y+;x=9;y=6;for(i=1;i=9;i+)for(j=1;j=9;j+)gotoxy(x,y);printf(%2d,i*j);y+;y-=9;x+=3;printf(nn);用一维数组统计

2、学生成绩#includevoidmain()charSelectKey,CreditMoney,DebitMoney;while(1)doclrscr();puts(=);puts(|Pleaseselectkey:|);puts(|1.Quary|);puts(|2.Credit|);puts(|3.Debit|);puts(|4.Return|);puts(=);SelectKey=getch();while(SelectKey!=1&SelectKey!=2&SelectKey!=3&SelectKey!=4);switch(SelectKey)case1:clrscr();puts(=

3、);puts(|Yourbalanceis$1000.|);puts(|Pressanykeytoreturn.|);puts(=);getch();break;case2:doclrscr();puts(=);puts(|PleaseselectCreditmoney:|);puts(|1.$50|);puts(|2.$100|);puts(|3.Return|);puts(=);CreditMoney=getch();while(CreditMoney!=1&CreditMoney!=2&CreditMoney!=3);switch(CreditMoney)case1:clrscr();p

4、uts(=);puts(|YourCreditmoneyis$50,Thankyou!|);puts(|Pressanykeytoreturn.|);puts(=);getch();break;case2:clrscr();puts(=);puts(|YourCreditmoneyis$100,Thankyou!|);puts(|Pressanykeytoreturn.|);puts(=);getch();break;case3:break;break;case3:doclrscr();puts(=);puts(|PleaseselectDebitmoney:|);puts(|1.$50|);

5、puts(|2.$100|);puts(|3.$500|);puts(|4.$1000|);puts(|5.Return|);puts(=);DebitMoney=getch();while(DebitMoney!=1&DebitMoney!=2&DebitMoney!=3&DebitMoney!=4&DebitMoney!=5);switch(DebitMoney)case1:clrscr();puts(=);puts(|YourDebitmoneyis$50,Thankyou!|);puts(|Pressanykeytoreturn.|);puts(=);getch();break;cas

6、e2:clrscr();puts(=);puts(|YourDebitmoneyis$100,Thankyou!|);puts(|Pressanykeytoreturn.|);puts(=);getch();break;case3:clrscr();puts(=);puts(|YourDebitmoneyis$500,Thankyou!|);puts(|Pressanykeytoreturn.|);puts(=);getch();break;case4:clrscr();puts(=);puts(|YourDebitmoneyis$1000,Thankyou!|);puts(|Pressany

7、keytoreturn.|);puts(=);getch();break;case5:break;break;case4:clrscr();puts(=);puts(|Thankyouforyourusing!|);puts(|Goodbye!|);puts(=);return;模拟ATM(自动柜员机)界面#includevoidmain()intPassword=0,Number=0,price=58,i=0;while(Password!=1234)if(i=3)return;i+;puts(PleaseinputPassword:);scanf(%d,&Password);i=0;whi

8、le(Number!=price)doputs(Pleaseinputanumberbetween1and100:);scanf(%d,&Number);printf(Yourinputnumberis%dn,Number);while(!(Number=1&Number=90)printf(TooBigger!Pressanykeytotryagain!n);elseif(Number=70&Number=1&Number30&Number=50)printf(Small!Pressanykeytotryagain!n);elseif(Number=price)printf(OK!Youar

9、eright!ByeBye!n);elseif(Numberprice)printf(Sorry,Onlyalittlebigger!Pressanykeytotryagain!n);getch();用二维数组实现矩阵转置/*用二维数组实现矩阵的转置*/#include#defineROW3#defineCOL4main()intmatrixAROWCOL,matrixBCOLROW;inti,j;clrscr();printf(EnterelementsofthematrixA,);printf(%d*%d:n,ROW,COL);for(i=0;iROW;i+)for(j=0;jCOL;j+

10、)scanf(%d,&matrixAij);for(i=0;iROW;i+)for(j=0;jCOL;j+)matrixBji=matrixAij;printf(MatrixB,);printf(%d*%d:n,COL,ROW);for(i=0;iCOL;i+)for(j=0;jROW;j+)printf(%8d,matrixBij);printf(n);printf(nPressAnyKeytoQuit.n);getch();求解二维数组的最大/最小元素#defineMAXN20intaMAXNMAXN;main()intmin,/*存储最小值*/max;/*存储最大值*/introw,co

11、l,n;clrscr();printf(Pleaseinputtheorderofthematrix:n);/*输入方阵的阶次*/scanf(%d,&n);printf(Pleaseinputtheelementsofthematrix,nfroma00toa%d%d:n,n-1,n-1);for(row=0;rown;row+)for(col=0;coln;col+)scanf(%d,&arowcol);for(min=a00,row=0;rown;row+)/*从每行选出最大数*/for(max=arow0,col=l;colvn;col+)/*从row行选出最大数*/if(maxmax)

12、/*保存至row行的最小数*/min=max;printf(Theminimumofmaximumnumberis%dn,min);for(max=a00,row=0;rown;row+)/*每行选出最小数*/for(min=arow0,col=1;colarowcol)min=arowcol;if(maxvmin)/*保存至row行的最大数*/max=min;printf(Themaximumofminimumnumbersis%dn,max);printf(nPressanykeytoquit.n);getch();利用数组求前n个质数#defineN50main()intprimesN;

13、intpc,m,k;clrscr();printf(nThefirst%dprimenumbersare:n,N);primes0=2;/*2是第一个质数*/pc=1;/*已有第一个质数*/m=3;/*被测试的数从3开始*/while(pcN)/*调整m使它为下一个质数*/k=0;while(primesk*primesk=m)if(m%primesk=0)/*m是合数*/m+=2;/*让m取下一个奇数*/k=l;/*不必用primes0=2去测试m,所以k从一开始*/elsek+;/*继续用下一个质数去测试*/primespc+=m;m+=2;/*除2外,其余质数均是奇数*/*输出prime

14、s0至primespc-1*/for(k=0;kpc;k+)printf(%4d,primesk);printf(nnPressanykeytoquit.n);getch();编制万年历#includestdio.hlongintf(intyear,intmonth)/*f(年,月)=年一1,如月3;否则,f(年,月)=年*/if(month3)returnyear-1;elsereturnyear;longintg(intmonth)/*g(月)=月+13,如月3;否则,g(月)=月+1*/if(month3)returnmonth+13;elsereturnmonth+1;longintn

15、(intyear,intmonth,intday)/*N=1461*f(年、月)/4+153*g(月)/5+日*/return1461L*f(year,month)/4+153L*g(month)/5+day;intw(intyear,intmonth,intday)/*w=(N-621049)%7(0=w7)*/return(int)(n(year,month,day)%7-621049L%7+7)%7);intdate1267;intday_tbl12=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,

16、31;main()intsw,leap,i,j,k,wd,day;intyear;/*年*/chartitle=SUNMONTUEWEDTHUFRISAT;clrscr();printf(Pleaseinputtheyearwhosecalendaryouwanttoknow:);/*输入年*/scanf(%d%*c,&year);/*输入年份值和掠过值后的回车*/sw=w(year,1,1);leap=year%4=0&year%100llyear%400=0;/*判闰年*/for(i=0;i12;i+)for(j=0;j6;j+)for(k=0;k7;k+)dateijk=0;/*日期表置

17、0*/for(i=0;iv12;i+)/*年十二个月*/for(wd=0,day=1;day=day_tblleapi;day+)/*将第i+1月的日期填入日期表*/dateiwdsw=day;sw=+sw%7;/*每星期七天,以0至6计数*/if(sw=0)wd+;/*日期表每七天一行,星期天开始新的一行*/printf(nl=TheCalendarofYear%d=lnl,year);for(i=0;i6;i+)/*先测算第i+1月和第i+7月的最大星期数*/for(wd=0,k=0;kv7;k+)/*日期表的第六行有日期,则wd!=0*/wd+=datei5k+datei+65k;wd=

18、wd?6:5;printf(%2d%s%2d%slnl,i+1,title,i+7,title);for(j=0;jwd;j+)printf();/*输出四个空白符*/*左栏为第i+1月,右栏为第i+7月*/for(k=0;k7;k+)if(dateijk)printf(%4d,dateijk);elseprintf();printf();/*输出十个空白符*/for(k=0;k7;k+)if(datei+6jk)printf(%4d,datei+6jk);elseprintf();printf(lnl);/*scanf(%*c);/*键入回车输出下一个月的日历*/putsputs(nPres

19、sanykeytoquit.);getch();对数组元素排序rest(inta,intn)inti,low,high,t;for(i=0,low=0,high=n-1;i0)/*ai与ahigh交换,随之high减1*/t=ai;ai=ahigh;ahigh=t;high-;elseif(ai=0)i+;/*掠过该元素*/else/*ai与alow交换,随之low增1,i增1*/t=ai;ai=alow;alow=t;low+;i+;ints=8,4,0,-1,6,0,-5;main()inti;clrscr();printf(nThearrybeforerestis:n);for(i=0;

20、isizeof(s)/sizeof(s0);i+)printf(%4d,si);rest(s,sizeof(s)/sizeof(s0);printf(nThearryafterrestis:n);for(i=0;isizeof(s)/sizeof(s0);i+)printf(%4d,si);printf(nPressanykeytoquit.n);getch();任意进制数的转换/*函数trans将无符号整数n翻译成d(2v=dv=16)进制表示的字符串s*/#defineMsizeof(unsignedint)*8inttrans(unsignedn,intd,chars)staticcha

21、rdigits=0123456789ABCDEF;/*十六进制数字的字符*/charbufM+1;intj,i=M;if(d16)s0=0;/*不合理的进制,置s为空字符串*/return0;/*不合理的进制,函数返回0*/bufi=0;dobuf-i=digitsn%d;/*译出最低位,对应字符存入对应工作数组中*/n/=d;while(n);/*将译出在工作数组中的字符串复制到s*/for(j=0;(sj=bufi)!=0;j+,i+);/*其中控制条件可简写成sj=bufi*/returnj;/*主函数用于测试函数trans()*/main()unsignedintnum=253;int

22、scale=2,3,10,16,1;charstr33;inti;clrscr();for(i=0;i(%d)Error!n,num,scalei);printf(nPressanykeytoquit.n);getch();判断回文数/*函数circle用于判断正整数n的d进制数表示形式是否是回文数*/intcircle(intn,intd)ints=0,m=n;while(m)s=s*d+m%d;m/=d;returns=n;/*main函数用于测试circle函数*/intnum=232,27,851;intscale=2,10,16;main()inti,j;clrscr();for(i

23、=0;isizeof(num)/sizeof(num0);i+)for(j=0;j(%d)isaCircleNumber!n,numi,scalej);elseprintf(%d-(%d)isnotaCircleNumber!n,numi,scalej);printf(nPressanykeytoquit.n);getch();求解钢材切割的最佳订单#include#defineN20#defineDELTA2intbestlen;intbestseleN;intseleN;intn;intorderlenN;inttotal;main()inti;clrscr();printf(nPleas

24、eentertotallengthofthesteel:n);/*输入钢材总长*/scanf(%d,&total);printf(nPleaseenternumberoforder:n);/*输入定单数*/scanf(%d,&n);printf(nPleaseentertheorders:n);/*输入各定单*/for(i=0;in;i+)scanf(%d,&orderleni);bestlen=0;/*最佳解用料的初值*/for(i=0;in;i+)selei=bestselei=0;/*置当前选择和最佳选择初值*/try();/*调用函数求解*/for(i=0;in;i+)/*输出结果*/

25、if(bestselei)printf(order%dlength=%dn,i+1,orderleni);printf(nPressanykeytoquit.);getch();try()inti,len;for(len=i=0;in;i+)/*求当前选中的用料量*/if(selei)len+=orderleni+DELTA;if(len-DELTA=total)/*注意最后一段可能不需要切割*/if(bestlenlen)/*找到一个更好的解*/bestlen=len;for(i=0;in;i+)bestselei=selei;for(i=0;i*yp)/*通过指向变量的指针引用变量的值*/

26、t=*xp;/*通过指向变量的指针引用变量的值*/*xp=*yp;/*通过指向变量x的指针xp,引用变量x的值*/*yp=t;/*通过指向变量y的指针yp,引用变量y的值*/if(*xp*zp)/*通过指向变量的指针,引用变量的值*/t=*xp;/*通过指向变量x的指针xp,引用变量x的值*/*xp=*zp;/*通过指向变量x的指针xp,引用变量x的值*/*zp=t;/*通过指向变量z的指针zp,引用变量z的值*/if(*yp*zp)/*通过指向变量的指针,引用变量的值*/t=*yp;/*通过指向变量的指针,引用变量的值*/*yp=*zp;/*通过指向变量y的指针yp,引用变量y的值*/*zp

27、=t;/*通过指向变量z的指针zp,引用变量z的值*/printf(x=%dty=%dtz=%dn,x,y,z);printf(nPressanykeytoquit.n);getch();阿拉伯数字转换为罗马数字#include#defineROWS4#defineCOLS4intnumsROWSCOLS=1000,1000,1000,1000,900,500,400,100,90,50,40,10,9,5,4,1;char*romsROWSCOLS=m,m,m,m,cm,d,cd,c,xc,l,xl,x,ix,v,iv,i;main(intargc,char*argv)intlow,high

28、;charroman25;if(argc2)/*带两个参数*/high=atoi(argv2);checknum(high);if(lowhigh)low=high;high=atoi(argvl);elselow=l;for(;low=high;low+)to_roman(low,roman);printf(%dt%sn,low,roman);checknum(intval)/*检查参数合理性*/if(val9999)printf(Thenumbermustbeinrangel.9999.n);exit(0);to_roman(intdecimal,charroman)/*将整数转换成罗马数

29、字表示*/intpower,index;roman0=0;for(power=0;powerROWS;power+)for(index=0;index=numspowerindex)strcat(roman,romspowerindex);decimal-=numspowerindex;通讯录的输入输出#include#defineZIPLEN10#definePHONLEN15/*structaddr类型定义*/structaddrchar*name;/*姓名*/char*address;/*地址*/charzipZIPLEN;/*邮政编码*/charphonePHONLEN;/*电话号码*

30、/;main()/*本主函数示意上述输入输出函数的用法*/structaddrp100;inti,j;clrscr();for(i=0;readaddr(p+i);i+);for(j=0;jname=(char*)malloc(len+1);/*申请存贮姓名的空间*/strcpy(dpt-name,buf);elsereturnO;/*Ctrl+Z结束输入*/printf(PleaseinputtheAddress:n);/*输入地址*/if(scanf(%s,buf)=1)len=strlen(buf);dpt-address=(char*)malloc(len+1);/*申请存贮地址的空间

31、*/strcpy(dpt-address,buf);else/*Ctrl+Z结束输入*/free(dpt-name);/*释放存贮姓名的空间*/return0;printf(PleaseinputtheZipcode:n);/*输入邮编*/if(scanf(%s,buf)=1)strncpy(dpt-zip,buf,ZIPLEN-1);elsefree(dpt-name);/*释放存贮姓名的空间*/free(dpt-address);/*释放存贮地址的空间*/return0;/*Ctrl+Z结束输入*/printf(PleaseinputthePhonenumber:n);/*输入电话号码*/

32、if(scanf(%s,buf)=1)strncpy(dpt-phone,buf,PHONLEN-1);elsefree(dpt-name);free(dpt-address);return0;/*Ctrl+Z结束输入*/return1;/*函数writeaddr用于输出通讯录*/intwriteaddr(structaddr*dpt)printf(Name:%sn,dpt-name);/*输出姓名*/printf(Address:%sn,dpt-address);/*输出地址*/printf(Zip:%sn,dpt-zip);/*输出邮编*/printf(Phone:%snn,dpt-pho

33、ne);/*输出电话号码*/扑克牌的结构表示enumsuitsCLUBS,DIAMONDS,HEARTS,SPADES;structcardenumsuitssuit;charvalue3;structcarddeck52;charcardval3=A,2,3,4,5,6,7,8,9,10,J,Q,K;charsuitsname9=CLUBS,DIAMONDS,HEARTS,SPADES;main()inti,j;enumsuitss;clrscr();for(i=0;i=12;i+)for(s=CLUBS;s=SPADES;s+)j=i*4+s;deckj.suit=s;strcpy(dec

34、kj.value,cardvali);for(j=0;j52;j+)printf(%s%3s)%c,suitsnamedeckj.suit,deckj.value,j%4=3?n:t);puts(nPressanykeytoquit.);getch();用“结构”统计学生成绩#include#defineN200#defineSCORES5#defineNUMLEN10structstd_typecharnoNUMLEN;/*学号*/char*name;/*名字符串指针*/intscoresSCORES;/*五门功课的成绩*/;structstd_typestudentsN;intorderN

35、;inttotalN;/*函数输入一个学生信息函数*/intreadastu(structstd_type*spt)intlen,j;charbuf120;/*输入字符串的缓冲区*/printf(nNumber:”);/*输入学号*/if(scanf(%s,buf)=1)strncpy(spt-no,buf,NUMLEN-1);elsereturn0;/*Ctrl+Z结束输入*/printf(Name:);/*输入姓名*/if(scanf(%s,buf)=1)len=strlen(buf);spt-name=(char*)malloc(len+l);/*申请存贮姓名的空间*/strcpy(sp

36、t-name,buf);elsereturn0;/*Ctrl+Z结束输入*/printf(Scores:);/*输入成绩*/for(j=0;jscores+j)!=l)break;if(j=O)/*个成绩也未输入*/free(spt-name);/*释放存贮姓名的空间*/return0;for(;jvSCORES;j+)/*少数未输入的成绩用0分代之*/spt-scoresj=0;returnl;/*函数输出一个学生信息的函数*/intwriteastu(structstd_type*spt)inti;printf(Number:%sn,spt-no);/*输出学号*/printf(Name:

37、%sn,spt-name);/*输出姓名*/printf(Scores:);/*输出成绩*/for(i=0;iscoresi);printf(nn);main()intn,i,j,t;clrscr();for(n=0;readastu(students+n);n+);/*采用冒泡法对学生信息数组排序*/for(i=0;in;i+)orderi=i;/*预置第i个输入的学生*/for(t=0,j=0;jvSCORES;j+)/*求第i个学生的总分*/t+=studentsi.scoresj;totali=t;/*冒泡排序*/for(i=0;ivn-l;i+)/*共扫视n-1遍*/for(j=0;

38、jn-1-i;j+)if(totalorderjtotalorderj+1)/*交换名次*/t=orderj;orderj=orderj+1;orderj+1=t;for(j=0;jn;j+)/*输出*/writeastu(students+orderj);printf(nPressanykeytoquit.n);getch();报数游戏#includestructeleintno;structele*link;main()intn,m,i;structele*h,*u,*p;clrscr();printf(Pleaseinputn&m:n);scanf(%d%d,&n,&m);/*输入n和m

39、*/h=u=(structele*)malloc(sizeof(structele);/*形成首表元*/h-no=1;for(i=2;iv=n;i+)/*形成其余的n-1个表元*/u-link=(structele*)malloc(sizeof(structele);u=u-link;u-no=i;/*第i个表元置编号i*/u-link=h;/*末表元后继首表元,形成环*/puts(nThenumbersofwhowillquitthecycleinturnare:);while(n)for(i=1;ilink;p=u-link;/*p指向第m个表元*/u-link=p-link;/*第m个表

40、元从环中脱钩*/printf(%4d,p-no);free(p);/*释放第m个表元占用的空间*/n-;printf(nnPressanykeytoquit.n);getch();学生成绩管理程序/*学生成绩管理程序编制一个统计学生考试分数的管理程序。设学生成绩已以一个学生一个记录的形式存储在文件中,每位学生记录包含的信息有:姓名,学号和各门功课的成绩。程序具有以下几项功能:求出各门课程的总分,平均分,按姓名,按学号寻找其记录并显示,浏览全部学生成绩和按总分由高到低显示学生信息等*/#include#defineSWN3/*课程数*/#defineNAMELEN20/*姓名最大字符数*/#de

41、fineCODELEN10/*学号最大字符数*/#defineFNAMELEN80/*文件名最大字符数*/#defineBUFLEN80/*缓冲区最大字符数*/*课程名称表*/charschoolworkSWNNAMELEN+1=Chinese,Mathematic,English;structrecordcharnameNAMELEN+1;/*姓名*/charcodeCODELEN+1;/*学号*/intmarksSWN;/*各课程成绩*/inttotal;/*总分*/stu;structnodecharnameNAMELEN+1;/*姓名*/charcodeCODELEN+1;/*学号*/intmarksSWN;/*各课程成绩*/inttot

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论