《c程序设计第四版(谭浩强)答案》由会员分享,可在线阅读,更多相关《c程序设计第四版(谭浩强)答案(23页珍藏版)》请在金锄头文库上搜索。
1、iclude#incue/int ays(it y,nt ,it d) /计算天数 it da=0,;i 2=,28,31,1,0,31,0,31,30,31;if(y=&%100!|%400=0) /判断与否为闰年11;i(m=)retur ay;eeor(;i-1;i+)dys+=i;+=d;etur dys;tuc atint year;int mth;i ay;in ;itan()pritf(er dte:);af(%d d %d,&.year,&.mo,&a.da);aysays(a.yea,.month,.ay);printf(%d年%d月d日是该年的第%天,.ar,aot,a.d
2、ay,a.ds);*/#fe 10 /第、题时N为5,第题时为10rcttuetitnm;har nae0;floa core3;loa ave; 第、4、题共用一种构造体类型tuN;*/void in(struc studenta)int ;print(学号 姓名t三门课成绩);for(=0;i;i+)prnf(% %t%.f-1f%-5.1n,ai.n,ai.n,ai.or0,ai.scor1,a.soe2);intmain()int i;rntf(请输入个学生的信息:学号、姓名、三门课成绩:,);for(i=;N;i+)scaf(%d s f f %f,&stui.nu,&su.na,&
3、stuiscoe0,ui.sce1,&sti.score2);rint(st);*/*voidprin(structuent )it i;rint(学号 姓名t三门课成绩);o(=0;iN;i+)print(%ld st%f-.f %51f,a.nu,inme,aicr0,i.scor,ai.scoe);vd ipu(stt tudt a) /在上一题的基本上编写inpt函数it ;prnt(请输入个学生的信息:学号、姓名、三门课成绩:n,N);fo(i=0;N;i+)sca(% sf f %f,tuinum,&t.nam,s.sore0,&tui.core1,&tcore);in an()i
4、np(st);prnt(st);* /测试数据1011wu 0 7110hen60 6491010 gu 8 78 00104 u 0 64 00 u 6065 9010106huan9 78 0117 hen 70 6 9008 rng990109yn 50 01010 zhng 507 0*/*intmai()in i,m=0;floataeage=;pint(请输入%d个学生的信息:学号、姓名、三门课成绩:,N);(i0;iN;i+)snf(%d s %f f,st.um,&stui.ae,&s.score0,&su.scre1,&stui.core2);stui.av=(stuicor
5、0+suiso+su.scr);aege+=stui.ave/N;for(i=1;isuave)=i;itf(三门课程总平均成绩为:%5.1fn成绩最高的学生是:n学号:姓名:n三门课成绩:%.1f,5.1f,%5.1fn平均成绩:%6.2fn,veage,tm.nm,tumnm,stumcre0,stum.scor1,stum.score,stum.a);*/*efineN 3 /定义人数src i nm; /本来的序号ntcount; /报数数目struct a *nt;;tmai()it ,j=1;ut *1,*p2,;p1b;for(i=0;ine!p1) /p1的t成员指向自己时表白
6、只剩最后一种人p-cunt=j; /报数if(j=2)p1; /p2的作用是标记报数为2的人if(j=3)j1;p2nxtp1-xt; /将报数为3的next成员赋值给上一种报数为的ext成员,使之指向下一种报数为1的/成员;ej=1;=p1net; 指向下一种ount不为3的成员printf(最后留在圈子的人本来的序号为:%dn,p-num);*/*#eineio(struc sudent)stcttudnlg um;loat scre;struct student xt;tn;rut studtreat(vi) /生成单向动态链表的函数 ructsuethad;ruc student*p1
7、,p2;n=0;1=p=lloc();scanf(l,%f,&1m,&1-scor);hea=NUL;il(p1nm!=0)+=1;i(n=1)hedp1;else p2-x=p;p=p1;pmloc();sf(%ld,%f,&-um,p1-scoe);p2-nextNUL;ren hed;vo prt(struc suent *ha) /输出链表的函数structuent p=hed;pint(ow,thes recrds are:n);whie(p!NU)rit(ld%5.1n,nm,p-e);-next;strut studen *de1(ruc tdnt *hea,n num) /删除
8、指定节点的函数,措施一,指定删除节点的数据strut udentp,*p;p1=h;if(p1-nm=nu)eturnhea=-next;lsil(p1-num!m) =1; p1=p1-net; p2-net-ext; 1-next=NUL;reurn hed;struc sudnt *(trct tudenthea,int) /措施二,指定删除节点序号uct sdent*1,*2;inti;p=had;if(=)retnhedp1-et;ele whle(+x;p-ne=p-xt; p1xtNLL;eur h;nti()srct tnt *ea;lo num; /in ;headca();pri(ea);rintf(n输入要删除学生的学号:); /prt(n输入要删除节点序号:);scanf(%ld,num); /scaf(%d,&n);h=l1(head,um); /hedl2(d,n); prn(hed);*/# dfine zo(tct tdnt