C程序设计(第四版)(谭浩强)课后习题答案_第1页
C程序设计(第四版)(谭浩强)课后习题答案_第2页
C程序设计(第四版)(谭浩强)课后习题答案_第3页
C程序设计(第四版)(谭浩强)课后习题答案_第4页
C程序设计(第四版)(谭浩强)课后习题答案_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、C程序设计(第四版)(谭浩强)第一章课后习题答案三冬冬包屋遵逾鱼去拓二include预编译.代码均调试成功,若有失误大多不是代码问题.自已找找.intmain()printf(Wn,/);return0;/与intmairi对应,为了程序可移植性,建议全用intmain+return0;.盤区上农餾企邕购企二ttincludeintmain()inta,b,sum;a=5;b=4;suma+b;printf(Thesumis%d.rT,sum);return0;#includeintmain()intmax(intx,inty);/被调用函数在主函数后面,用前先声明.inta,b,c;scan

2、f(%d,%d:&a,&b);/输入吋要按格式来,此处的逗号,用空格会发生错误.c=max(a,b);/a,b作为实参传入被调用函数中.printf(z,Themaxis%drT,c);return0;intmax(intx,inty)/定义了两个形参.intz;z属于局部变量,可与主函数中相同名字.if(xy)z=x;elsez=y;return(z);/z作为整个程序的出口值,赋给主函数中的c.PO150.6三个叙的丈小,(叙gO素斥裸后修习麵丿#includeintmainOinta,b,c,d;d是用于存储最大值的.intmax(intx,inty,intz);/测试可知,在VS200

3、8中,可以不预先声明.printf(Pleaseinput3numbers:rT);scanf(%d%d%d,&a,&b,&c);d=max(a,b,c);调用函数中有三个形参,这里需要传入三个实参,才可运算.printf(z,Themaxis:%d.rT,d);/d可以换成max(a,b,c).intmax(intx,inty,intz)intm;if(xy&xz)求三者之大的一种方法.m=x;if(yx&yz)m=y;if(zy&zx)return(m);/返凹值m给主函数中的d.C程序设计(第四版)(谭浩强)第2章课后习题答案算法程序的灵魂W7送丄_生莫卫士乞色垂购遂二#includei

4、ntmainOinti,s=l;/在执行数值操作前定要先有个初值.for(i=l;i6;i卄)/这电是到6.s=s*i;/相乘printf(Thesumis%d.rT,s);return0;#include/作出要求:换成1到11间奇数相乘.intmainOinti,s=l;在执行数值操作前定要先有个初值.for(i=l;i12;i+)这里是到,但题目要求的是取单数也可以是i二i+2if(i%2!=0)i对取模,值为非为奇数;为则为偶数.s二s*i;elsecontinue;跳过这个for循环的这一次,执行下次.printf(Thesumis%d.rT,s);return0;暂时没法做.PO1

5、92.3判畝20002500先勺的冈耳,弄输出,年的概念是地球囤绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是365.2423天(目前)。所以,如果每年定义为365天的话,1年就会多出0.2423天,4年就会多出0.9692天,非常接近1兀这样国年就出现了,也就是每4年要有1年设置为366天,来抵消这多岀的1天。规则为:4)如果年份能被4報除,则该年计为闰年;可是,假如不做调軟的话,当400年的时候,累计才多出9&92夭,接近于多出97天,闰年的设置却多出来100夭,所以要在400年内,再撤销3个闰年。怎么撤销呢?就有了下面这个规则:2

6、)如果年份能被100桀除,则不计为闰年;问题又来了,400年里有4个100年吧,去掉后四个100年后,又少了一个,所以再加一个规则就是:3)如果年份能被400整除,则计为闰年。简单说来每400年里设置了97个闰年,也就是400里的前3个100年不设置闰年,误差被调熬到400年仅有0.08夭。#includeintmainOinti;for(i=2000;i=2200;i+)if(i%4=0&i%100!=0)|i%400=0)闰年的经典判断条件.printf(%disaleapyear!rT,i);elseprintf(%disnotaleapyear!n,i);三徑2.工:纟屯二理逻上二二纟

7、纟匕空0輕值:includeintmainOfloatsign=l,sum=0,deno,term;/关于有小数的计算应该用float.for(deno=l;denointmainOinti,num,n;/像13,37,这样只能让和它本身除以外,没有其它除数的叫素数.printf(Pleaseinputanumber:rT);/获取一个数值scanf(%d,&num);for(i=2;inum;i卄)在到此数值间进行循环除,如果除得尽,就不满足素数要求.迁(num%i=0)/除得尽,则不是.n=l;break;设置跳出,才不会执行多次.n=0;/按程序走的话,这里会执行多次,不能用printf

8、语句,会输出多次.if(n=0)单出口问题,虽然n=0执行多次,但仍然是n二0,这样才会只输出次.printf(Itisdoaprimenumber!);/如果是100-200可以加个%d”,nmu进去.elseprintf(Itisnotaprimenumber!);return0;邑並裹垂週2話團恚应送邑區陸.:还要伪代码三徑0上廻鳖三企塞參敷邕:#includeintmain()chara=,,b=,bc;c=a;a=b;b=c;printf(z,anowis%c,bnowis%c!n/z,a,b):return0;P036上_检公呂企盘二査逾鱼誉圭虫那二止遂二#includeintma

9、inOinti,a10,s=0;printf(Pleaseinput10numbers:rT);for(i=0;i=9;i+)scanf(%d,&ai);for(i=0;i=9;i+)if(saij)s=ai;printf(,z%disthebiggestnumber!n,s);return0;g滋2乞_懸圭土咽逐筮鱼二璧埶,#includeintmainOinti,j,a4,s=0;printf(Pleaseinput5numbers:rT);此处要回乍.for(i=0;i=4;i卄)scanfC%d&ai);这是取多个数的代码,可以用while控制取到n符为止.for(i=0;i=3;i+

10、)双重循环,先-个外循,再轮所有小循,轮完后再下-个大循.for(j=i+l;jaj)如果成立,则对换,小于号表示降序排列,大于号表示升序排列.s=ai;ai=aj;aj二s;for(i=0;i=4;i卄)/重新定义循环输出数组中新排列的数.printfai);return0;目空92:纟愛圭必捡蛊令I:.#includeintmainOinti,sum=0;这是个简单的程序.for(i=0;i101;i+)sum二sum+i;printf(z,Thesumofonetoonehundredis%d!n,z,sum);return0;P036上总型亀二仝鱼他盍迥曲盤極埜脸:ttincludei

11、ntmainOintn;printf(,zPleaseinputanumber:rT);scanf(%d,&n);if(n%3=0&n%5=0)关键句,用并的符号.printf(Canbedevideby3and5!n);elseprintf(Z/Cannotbedevideby3and5!rT);return0;P0360.6输出力0啟间的素叙,/*第科1方法.#include/网络版本,采用调用函数和求根取素.#include下面用到sqrt,所以需要包含数据函数.sqrt是求根,属数学函数.intmainO学会个程序采用”主函数+被调用函数”的方式,会比较规范.inti;for(i二10

12、0;i二200;i+)/为了书写规范,最好加上,以示清范围.if(prime_number(i)=1)/i是实参.printf(z,%d,i);return0;intprime_number(doublem)/m是形参.intj,k;k=(int)sqrt(m);/求根,(int)是强制转换,求根里要是浮点型.for(j=2;j=k;j+)辻(m%j=0)return0;此值返回给主函数中的实参.return1;includeincludeintmainOinti;for(i=100;i=200;i+)指定至间.if(prime(i)=l)这里i为实参,传入形参j中进行运算,然后再由形参j带出

13、返回.printf(%distheprimenumber!rT,i);return0;intprime(intj)/j是形参,用于接收实参i给的值.intm,n;m=(int)sqrt(j);for(n=2;n=m;n+)辻(j%n=0)return0;返回值,0为不是素数,1是素数.return1;请仿照2.5来写.紀徑2乙至主签鱼蛊企意士签鱼熱.include/最大公约数用累除法,除到无余数时的被除数是最大公约数.main()intm,n,c,d;intgcdO;这是最大公约数的缩写,此处调用函数,可以不写里而的实参.intlcm();这是最小公倍数的缩写,此处调用函数,可以不写里而的实参

14、.printf(Pleaseinputtwonumber:rT);scanf(%d%d,&m,&n);c=gcd(m,n);c获取最大公约数d=lcm(m,n);/d获取最小公倍数printf(TheGCDof%dand%dis:%d!n,m,n,c);printf(,zTheLCMof%dand%dis:%d!n,m,n,d);return0;intgcd(intx,inty)/最大公约数GreatestCommonDivisorinttemp;while(x%y!=0)temp二y;/y在下一轮中作为除数,即是下轮中的X,所以先闪-边去.y=x%y;/x,y的余数作为下一轮中的Y,由x%y

15、来取得.x二temp;刚才temp中存储了y的值,现在拿出来作为下轮中的X使用.returny;这是每一轮中的被除数,按原理来,这就是最大公约数,即累除法的原理.intlcm(intx,inty)/最小公倍数LowestCommonMultipleinti,temp;if(xy)保证二者大的数在X上,小的数在Y上.小于号降序,大于号升序.以下为经典三行码,实现两个数的互换.temp=x;X二y;y二temp;for(i=l;i=y;i+)/设定个区间,从1至小的数之间的循环.if(!(x*i)%y)除得尽为冬,非零为真,则成立并返凹.如此往复,直到収模无余数,那么小的数X乘以区间当前的I值,就

16、是最小公倍数.returnx*i;最简单的c程序设计一一顺序程序设计P0373.1把华氏溫庚拷化鬲銀氏素斥右ttincludefloatF_to_C(floatinput_fah)/代表华转摄,input_fah是局部变量.floatoutput_cen;/这里也是局部变量.output_cen=(5.0/9)*(input_fah32);/函数的功能体.returnoutput_cen;返回值,注意,返回值的数据类型应该和函数致.floatC_to_F(floatinput_cen)floatoutput_fdh;output_fah=(9.0/5)*input_cen+32;/转换过程.r

17、eturnoutput_fah;intmainOintchoice;floatinput_fah,input_cen,output_fah,output_cen;/局部变量的调用及参数传递.printf(F_to_CpressandC_to_Fpress!n);scanf(%d,&choice);if(choice=l)printf(Pleaseinputfahrenheit:“);scanf&input_fah);这个是主函数定义的变量,虽然和调用函数同洛.output_cen二F_to_C(input_fah);printf(The华氏is%d,摄氏is%d.(int)input_fah,

18、(int)output_cen);if(choice=2)printf(z,Pleaseinputcentigrade:);scanf&input_cen);output_fah=C_to_F(input_cen);printf(TheCentigradeis%d,andtheFahrenheitis%d(int)input_cen,(int)output_fah);return0;至弐_拦兰蜀罢止熬逢L息卷空盘虜包塁2:#includeintmainOfloatp0=1000,rl=0.0036,r2=0.0225,r3=0.0198,pl,p2,p3;pl=pO*(1+rl);p2=p0*

19、(l+r2);p3=p0*(l+r3/2)*(l+r3/2);printfCzpl=%fnp2=%fnp3=%fn/z,pl,p2,p3);return0;ttincludeintmainO小写范围是97-122,大写范围是65-90,大写加上即得小写.26个字母.charcl,c2;cl二A;c2=cl+32;printf(,z%c%d,c2,c2);return0;70593.4伶出三角形边农,尊出面张,#includettincludeintmainOdoublea=3.67,b=5.43,c二6.21,s,area;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)

20、*(s-c);printf(,zareais%fnz,,area);/默认可以组成三角形.return0;P065.玄丄遵二远三生蓋埜鱼趨:越銓西个丞圍媲:ttincludettincludeintmain()doublea,b,c,disc,xl,x2,p,q;scanfC%lf%lf%lf,&a,&b,&c);disc=b*b-4*d*c;p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);xl=p+q;x2=p-q;printf(,zxl=%7.2fnx2=%7.2f,xl,x2);return0;ttincludettincludeintmainOdoublea=l.0

21、;1是整型,1.0是浮点型,默认是double.可以是float.printf(,z%.9fn,a/3);return0;P072.昱乙血理蛊老电鱼煞邕虫:.#include#includeintmainOfloata;输出的结果是.333252,float精度6位,所以第七位后不可信.沪10000/3.0;printf(%fn,a);return0;include#includeintmain()chara=,B,b二0,c二Y;putchar(a);putchar(b);putchar(c);putcharCn);putchar(101);101是A的ASCII代码的缩写,因为此函数只能输

22、出字符.putchar(66);return0;昱纟_您週盈独鹰型拓蛊二includettincludeintmain()chara,b,c;a=getchar();7020.2求各种看款的利息叙,b二getchar();c=getchar();putchar(a);putchar(b);putchar(c);这也是基木回显的C程序代码.putcharCn);return0;3.10衙到丈禺,左的為繪母小富,ttincludettincludeintmainOchara,b;a=getchar();b=a+32putchar(b);putcharCn);return0;P0X20.1国氏望产总

23、值力弄后的憎衣信毅,includestdio.h#includeintmainOdoublep,r=0.09,n=10;p=pow(l+r),n);这是数学函数,pow(x,y)计算x的y次方.printf(Pis%lfwhen10yearslater.rT,p);return0;/结果是0.36倍.#include#includeintmain()/年份和当年利率均有给出.doublep,r,n;/1292.5,这是全五年期.If输出的是double型./1270.76,这是先二年,再三年的./1270.76,这是先三年,再二年的.证明,是一样的./1224.86,这难道说是,相对的存死期越

24、久越值钱./1428.74.p=1000*(1+5*0.0585);printf(5yearsis%lf!rT,p);p=(1000*(1+2*0.0468);p=(p*(1+3*0.0540);printf(5yearsis%lf!iT,p);p=(1000*(1+3*0.0540);p=(p*(1+2*0.0468);printf(5yearsis%lf!rT,p);p=1000*pow(l+0.0414),5);printf(5yearsis%lf!rT,p);p=1000*pow(l+0.072/4),4*5);printf(,z5yearsis%lf!n,p);return0;空色?

25、_农仏企卫要巴遂更:.include#includemath.hintmainOdoublem,r=0.01,d=300000,p=6000;m=(loglO(p/(p-d*r)/(loglO(1+r);printf(z/%.lir,m);按要求只留个小数,所以要写%.Ilf.return0;0.6常母密码袴换,调用岛赦及临界处谡,includecharprintcode(charf)if(int)f86&(int)f118&(int)f123)return(f-26+4);因为putchar会自动返M,所以改成return,因为这是在函数中,调用需要返回值.elsereturn(f+4);i

26、ntmain()chara,b,c,d,e;printf(Pleaseinput:rT);a二getchar();b二getchar();c=getchar();d=getchar();e=getchar();/临界问题.printf(c%c%c%c%c,prirrtcode(a),printcode(b),printcode(c),prirrtcode(d),printcode(e);putchar(putcharcode(a);putchar(putcharcode(b);putchar(putcharcode(c);putchar(putcharcode(d);putchar(putch

27、arcode(e);return0;/注意理解自定义函数的定义,使用,及形参实参的流向./p84的是计算问题,自己看着办,最后要求小数点后两位,用的是%.21f来实现,因为没有要求实部,所以m.11格式中m不写./p84的是定义问题,第一问,两者都行,但是定义字母时,scemf要写%c来获取,而定义数值时则要用%(1来获取./第二问,putchar貌似只能输出字符,所以用printf.putchar木身就是字符输出函数啦,字符,有木有!字符啊!尽管它的参数可以是putcharCMOD,效果是输出字符A啊./第三问,出现任何及无条件,那么答案明显是否.可以转换,但要在某此条件下,例如输出和读入时

28、,c是字母,而%d是数值,看着办.选择结构程序设计P0X64.1一兄二次方輕求根的二今丈,include#includeintmainOdoublea,b,c,disc,xl,x2,p,q;scanfC%lf%lf%lf,&a,&b,&c);disc=b*b-4*a*c;if(discintmainO此程序代表按大小顺序输出.floata,b,t;scanf(zz%f%f/z,&a,&b);/出错时,注意检査这里是否按格式输入了.比如有个逗号.迁(ab)t二a;a=b;b=t;printf(%5.2f,%5.2fn,a,b);return0;704.3三个叙按丈小输岀,#includeintm

29、ainO此程序代表按大小顺序输出.floata,b,c,t;scanfC%f%f%f,&a,&b,&c);辻(ab)此处执行后,a为小者.t=a;a=b;b=t;if(ac)此处执行后,a为小者.t=a;a=c;c=t;if(bc)上而已经搞定s是最小者,现在对比得出次小者,并且已经归到变量中.t=b;b=c;c=t;printf(5.2f,%5.2f%5.2fn,a,b,c);return0;三0空_纟烈飾扯仝生卷迓遠俺径土冬筮世:includeintmain()charch;scanf(%c,&ch);ch=(ch=A&ch=Z,)?(ch+32):ch;条件运算符,真取前,假取后.pri

30、ntf(%cn,ch);return0;惣竺纟丄參要更栓鱼型產购纟鱼#includeintmainOintx,y;scanf(%d,&x);if(x=0)if(x0)/这个范围要基于x=0来判断.y=l;elsey=O;else/这个是xO的范围.y=-l;printf(x=%d,y=%d,x,y);return0;徑纟9兰磁电適遵逐週:.#includeintmainOchargrade;scanf(%c,&grade);printf(,zYourscore:);switch(grade)cases:printf(,85-100n,/);break;/当多分支结构过于多时,可以用switch

31、来解决.caseb:prirrtf(70-84n);break;casec:prirrtf(6O69rT):break;cased:printf(60rT):break;defauIt:prirrtf(Enterdataerror!n,z);return0;也筈.纟乙+,懸检仝雄盘卷恵二拴县丟殳主士逼二ttincludevoidactionl(intx,inty)printf(x+y=%drT,x+y);voidaction2(intx,inty)printf(x*y=%drT,x*y);intmainOcharch;inta=15,b=23;ch=getchar();switch(ch)ca

32、sea5:caseA:actionl(a,b);break;/a,A共用-个执行语句.caseb:caseB:action2(a,b);break;default:putcharCa,);/a可以控制电脑发出蜂鸣声.return0;P106_纟丄週购佥圭圭邕宜土理聖ttincludeintmainOintyear,leap;priritf(Pleaseinputtheyear:n,z);scanf&year);if(year%4-0)/400年里,在100个口J除尽4的年里计算,以下是在全范围内计算.if(year%100=0)既是100个内的,又是可以除尽100的,算是且.辻(year%40

33、0=0)相当于且了两次,只余下唯一一个.leap=l;else/400年里只有1个除得尽,其它都不是.leap=0;else/这里的范围是(year%40)&(year%100!=0)leap=l;在合法的100内,又不是2100,2200啖的,当然属闰年.elseleap=0;if(leap)printf(%dis,year);elseprintf(%disnot,year);printf(,zaleapyear!);/不管上面如何判断,最后还是会输出这-句.return0;三呂L.纟纟.二並三理蓋埜鬼佥笛遵过蛊二include#includeintmainOdoublea,b,c,disc

34、,xl,x2,realpart,imagpart;scanf(,z%lf%lf%lf,&a,&b,&c);if(year%4-0)/400年里,在100个口J除尽4的年里计算,以下是在全范围内计算.printf(Theequation“);if(fabs(a)=le6)/fabs是绝对值,le-6,即是的负六次方,接近或是等于零.printf(isnotaquadratic!n);printf(xl二x2=%lf,-c/b);elsedisc=b*b-4*a*c;if(fabs(disc)le-6)xl=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);

35、printf(hasdistinctrealroots:%lfand%lfn,xl,x2);elserealpart二-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(hascomplexroots:rT);printf(lf+%lfinz,,realpart,imagpart);printf(lf+%lfinz,,realpart,imagpart);return0;徑纟.,纟比圭空査企亘迥掘社篡竖査旦遵證理:ttincludeintmainOdoublep,w,s,d,f;printf(p,w,siT);scanf(,z%lf%lf%lf,&p,&w,&

36、s);迁(s250)d二0.0;f=p*w*s*(ld);printf(%lf,f);else迁(s500)d=0.02;f=p*w*s*(ld);printff);else辻(s1000)d=0.05;f=p*w*s*(ld);printff);elseif(s2000)d=0.08;f=p*w*s*(ld);printf(%lf,f);elseif(s3000)d=0.1;f=p*w*s*(ld);printff);elsed=0.15;f=p*w*s*(ld);printff);return0;P01120.4被盘綺入三个鼠输出眾攵卷includeintmina,mida,maxa;in

37、tmax(inta,intb,intc)intm;辻(ab)凡是比较中,大于号代表升序排列.01二8;a=b;b=m;辻(ac)m=a;a=c;c=m;if(bc)m=a;a=c;c=m;return(c);/此排序后,a,b,c由小到大.所以c是返回中最大的.intmain()inta,b,c;printf(Pleaseinput3numbers:“);scanf(%d%d%d,&a,&b,&c);printf(Themaxis%d!nmax(a,b,c);return0;P01120.5ttincludeincludeintmain()doublea,b;printf(Pleaseinpu

38、tanumber:“);scanf&a);if(a1000)b=sqrt(a);elseprintf(VT);/控制蜂鸣声printf(Pleaseinputanumberagainscanf&a);11b=sqrt(a);printf(XOlf,b);/按要求,只取整数.return0;2?翌0纟一二个丟套空2笆购蛊二羟釜住检也.#includeincludeintmainOinti,a,b4,count=0;printf(Pleaseinputanumber(five-digitnumber)/意思是五位数以内.scanf(%d,&a);for(i=0;i=0;i)printf(,z%d,

39、bi);printf(n);printf(,z倒序输出这个数字,如下:);for(i=0;i=4;i+)printf(%d,bi);printfCrT);return0;P0112-.2呂径要更莖邑基金煜复笑ZincludeintmainOdoublea,b;printf(,zPleaseinputprofitamountscanf&a);if(a=10)/这个是整个辻的基础.b=a*0.1;elseif=20)/以上面为基础,这已经代表了10-20间了!b=l+(a-10)*0.075;elseif(a=40)同理,这是20-401nJ.b=l+0.75+(a-20)*0.05;elseif

40、(a=60)b=l+0.75+0.1+(a-40)*0.03;elseif(a=100)b=l+0.75+0.1+0.06+-60)*0.15;else/这里是大于100的.b=l+0.75+0.1+0.06+-100)*0.01;printf(Therewardis%lf!rT,b);return0;P0J12.上:理巒要更莖邑基舍色纟理遊ZincludedoubleGetProfit(doublec)printf(Pleaseinputprofitamount:);scanf(%lf,&c);return(c);返回本身了,如果有进步的计算结果,将值赋给其它变量,也可以返回.intmain

41、()doublea;charc;printf(,zYourchoice:nA:010;nB:10-20;nC:20-40;nD:40-60;nE:60-100;nF:100-1000;n);scanf(%c,&c);不同档吋,应照档的规定数值进行输入,否则结果不会是正确的.switch(c)前三后三用于比较调用函数./GetProfit(c)引入的实参没有意义,返回值和引入的实参没关系,反而由键盘获得.caseA:printf(z,Therewardis%lf!nGetProfit(c)*0.1);break:/0-100.100caseB:printf(Therewardis%lf!n,z,

42、1+(GetProfit(c)-10)*0.075);break;/10-200.075TOC o 1-5 h zcaseC:printf(z,Therewardis%lf!n,z,1+0.75+(GetProfit(c)-20)*0.05);break;/20-400.050caseD:printf(Pleaseinputprofitamount;scanf(%lf,&a);printf(Therewardis%lf!n,1+0.75+0.l+(a40)*0.03);break;/40-600.030caseE:printf(Pleaseinputprofitamount;scanf(%lf

43、,&a);printf(Therewardis%lf!n,1+0.75+0.1+0.6+(a-60)*0.15):break;/60-1000.015caseF:printf(Pleaseinputprofitamount;scanf(%lf,&a);printf(Therewardis%lf!n,1+0.75+0.1+0.6+0.6+(a-100)*0.01);break;/100-10000.010default:printf(,zErrordata!);break;口J以有个执行体,用包括起来.return0;P01120.11被盘綺入赦仏址后排序输出,#includeintmainOi

44、nta10,i,变量可以在写代码过程中再回来临时添加.printfC请输入数值的个数:(十个以内);scemf&m);/到这里需要变量来承载数值的个数,设m,回头去定义变量那写上m.printf(-请分别输入相对应个数的数值:);for(i=0;im;i+)scanf(%d,&ai);for(i=0;im;i卄)for(j=i+l;jajj)这是选择排序法.升序.n=ai;这里需要一个用于临时变量的n,所以回头去写上.ai=aj:aj=n;for(i=0;im;i+)printf(%d,ai);return0;C程序设计(第四版)(谭浩强)第五章课后习题答案循环结构程序设计P1155.1用奴滋

45、针耳7至心的合.includeintmain()inti=l,sum=0;、vh订e(iintmainOinti=l,sum=0;do/do-while可以做的事,用while都可以做到./do-while先做一次执行,再判断条件,而wh订e却是先做一个条件,再执行.sunFsum+i;i+;while(iintmain()inti,sum=0;printf(z,Pleaseinputanumberscemf(%d,&i);/输入10以内,正常,11的话,贝ijsum仍然是0.while(i=10)sum二sum+i;i+;printf(Thesumofl10is%d.rT,sum);retu

46、rn0;#includeintmainOinti,sum=0;printf(Pleaseinputanumberscanf(%d,&i);输入10以内,结果样.输入11的话,先做操作,所以sum二11.dosum=sum+i;i+;打Mle(i=10);此重点在于理解二者的差别.printf(Thesumofl10is%d.rT,sum);return0;己经.2纟住越捡创总二#includeintmainOiriti,b=0,a,c;for(i=0;i=100)break;/break是用于跳出循坏,对if无效,对wh订eforswitch这类.c=b/i;printf(,zconutis%

47、d,averis%d”,i+l,c);注意%号后的形式,否则可能输出错误.return0;P1275.5洌“的例孔#includeintmainOinti;for(i=l;i20;i+)if(i%3!=0)continue;跳过木次I,执行下一个i.printf(%d“,i);printf(rT);return0;?LZ9_鱼邑二仝住鱼矍?L#includeintmainOinti,j,a=O;没有给初值,会出现警告:使用了未初始化的局部变量“犷.for(i=l;i=4;i+)for(j=l;ji*j);printf(rT);return0;Pl3t_.二乙囲二企冬負敷埜总建墜敷匹竺邕二tti

48、ncludettincludeintmainO四分之哌等于(1)-(1/3)+(1/5)-(1/7)+(1/9)-(1/11).floats=l,n=l,m,sum=0,t;for(m=l;m=m+2)不确定哪项才会小于等于十的负六次方,所以不指定,无限下去./不指定第二项,执行语句中应该有控制跳出的句子,否则死循环.t=(s)*(n/m);/这是第一项,s是符号,if(fabs(t)=le-6)/应该写在这里,题目要求这项不累加进去.break;SUDFSUin+t;因为累加项在这里,所以,旦跳出就不会累加进来了.s=s*(-1);变号i次.printf(四分之哌的值是%f.n,sum);printfC-个完整哌的值是,sum*4);return0;下面这段小代码用来验证关于数值型数据类型的关系去掉注释,可运行./如果出现类似值为全1或是全零的话,一般可以考虑数据类型赋值或是定义错了的问题./#include/这是关于intfloatdouble三者关复杂关系的,乱啊,如果看不懂,口J以

温馨提示

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

评论

0/150

提交评论