C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))課后習(xí)題答案_第1頁(yè)
C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))課后習(xí)題答案_第2頁(yè)
C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))課后習(xí)題答案_第3頁(yè)
C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))課后習(xí)題答案_第4頁(yè)
C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))第一章課后習(xí)題答案三冬冬包屋遵逾魚去拓二include預(yù)編譯.代碼均調(diào)試成功,若有失誤大多不是代碼問(wèn)題.自已找找.intmain()printf(Wn,/);return0;/與intmairi對(duì)應(yīng),為了程序可移植性,建議全用intmain+return0;.盤區(qū)上農(nóng)餾企邕購(gòu)企二ttincludeintmain()inta,b,sum;a=5;b=4;suma+b;printf(Thesumis%d.rT,sum);return0;#includeintmain()intmax(intx,inty);/被調(diào)用函數(shù)在主函數(shù)后面,用前先聲明.inta,b,c;scan

2、f(%d,%d:&a,&b);/輸入?yún)家锤袷絹?lái),此處的逗號(hào),用空格會(huì)發(fā)生錯(cuò)誤.c=max(a,b);/a,b作為實(shí)參傳入被調(diào)用函數(shù)中.printf(z,Themaxis%drT,c);return0;intmax(intx,inty)/定義了兩個(gè)形參.intz;z屬于局部變量,可與主函數(shù)中相同名字.if(xy)z=x;elsez=y;return(z);/z作為整個(gè)程序的出口值,賦給主函數(shù)中的c.PO150.6三個(gè)敘的丈小,(敘gO素斥裸后修習(xí)麵丿#includeintmainOinta,b,c,d;d是用于存儲(chǔ)最大值的.intmax(intx,inty,intz);/測(cè)試可知,在VS200

3、8中,可以不預(yù)先聲明.printf(Pleaseinput3numbers:rT);scanf(%d%d%d,&a,&b,&c);d=max(a,b,c);調(diào)用函數(shù)中有三個(gè)形參,這里需要傳入三個(gè)實(shí)參,才可運(yùn)算.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給主函數(shù)中的d.C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))第2章課后習(xí)題答案算法程序的靈魂W7送丄_生莫衛(wèi)士乞色垂購(gòu)遂二#includei

4、ntmainOinti,s=l;/在執(zhí)行數(shù)值操作前定要先有個(gè)初值.for(i=l;i6;i卄)/這電是到6.s=s*i;/相乘printf(Thesumis%d.rT,s);return0;#include/作出要求:換成1到11間奇數(shù)相乘.intmainOinti,s=l;在執(zhí)行數(shù)值操作前定要先有個(gè)初值.for(i=l;i12;i+)這里是到,但題目要求的是取單數(shù)也可以是i二i+2if(i%2!=0)i對(duì)取模,值為非為奇數(shù);為則為偶數(shù).s二s*i;elsecontinue;跳過(guò)這個(gè)for循環(huán)的這一次,執(zhí)行下次.printf(Thesumis%d.rT,s);return0;暫時(shí)沒(méi)法做.PO1

5、92.3判畝20002500先勺的岡耳,弄輸出,年的概念是地球囤繞太陽(yáng)一周的時(shí)間(所謂公轉(zhuǎn)周期)稱為一年,這個(gè)周期是相當(dāng)穩(wěn)定的,很長(zhǎng)時(shí)間也不會(huì)變動(dòng)1秒,但是真正的一年是365.2423天(目前)。所以,如果每年定義為365天的話,1年就會(huì)多出0.2423天,4年就會(huì)多出0.9692天,非常接近1兀這樣國(guó)年就出現(xiàn)了,也就是每4年要有1年設(shè)置為366天,來(lái)抵消這多岀的1天。規(guī)則為:4)如果年份能被4報(bào)除,則該年計(jì)為閏年;可是,假如不做調(diào)軟的話,當(dāng)400年的時(shí)候,累計(jì)才多出9&92夭,接近于多出97天,閏年的設(shè)置卻多出來(lái)100夭,所以要在400年內(nèi),再撤銷3個(gè)閏年。怎么撤銷呢?就有了下面這個(gè)規(guī)則:2

6、)如果年份能被100桀除,則不計(jì)為閏年;問(wèn)題又來(lái)了,400年里有4個(gè)100年吧,去掉后四個(gè)100年后,又少了一個(gè),所以再加一個(gè)規(guī)則就是:3)如果年份能被400整除,則計(jì)為閏年。簡(jiǎn)單說(shuō)來(lái)每400年里設(shè)置了97個(gè)閏年,也就是400里的前3個(gè)100年不設(shè)置閏年,誤差被調(diào)熬到400年僅有0.08夭。#includeintmainOinti;for(i=2000;i=2200;i+)if(i%4=0&i%100!=0)|i%400=0)閏年的經(jīng)典判斷條件.printf(%disaleapyear!rT,i);elseprintf(%disnotaleapyear!n,i);三徑2.工:纟屯二理邏上二二纟

7、纟匕空0輕值:includeintmainOfloatsign=l,sum=0,deno,term;/關(guān)于有小數(shù)的計(jì)算應(yīng)該用float.for(deno=l;denointmainOinti,num,n;/像13,37,這樣只能讓和它本身除以外,沒(méi)有其它除數(shù)的叫素?cái)?shù).printf(Pleaseinputanumber:rT);/獲取一個(gè)數(shù)值scanf(%d,&num);for(i=2;inum;i卄)在到此數(shù)值間進(jìn)行循環(huán)除,如果除得盡,就不滿足素?cái)?shù)要求.遷(num%i=0)/除得盡,則不是.n=l;break;設(shè)置跳出,才不會(huì)執(zhí)行多次.n=0;/按程序走的話,這里會(huì)執(zhí)行多次,不能用printf

8、語(yǔ)句,會(huì)輸出多次.if(n=0)單出口問(wèn)題,雖然n=0執(zhí)行多次,但仍然是n二0,這樣才會(huì)只輸出次.printf(Itisdoaprimenumber!);/如果是100-200可以加個(gè)%d”,nmu進(jìn)去.elseprintf(Itisnotaprimenumber!);return0;邑並裹垂週2話團(tuán)恚應(yīng)送邑區(qū)陸.:還要偽代碼三徑0上廻鱉三企塞參敷邕:#includeintmain()chara=,,b=,bc;c=a;a=b;b=c;printf(z,anowis%c,bnowis%c!n/z,a,b):return0;P036上_檢公呂企盤二査逾魚譽(yù)圭蟲那二止遂二#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);這是取多個(gè)數(shù)的代碼,可以用while控制取到n符為止.for(i=0;i=3;i+

10、)雙重循環(huán),先-個(gè)外循,再輪所有小循,輪完后再下-個(gè)大循.for(j=i+l;jaj)如果成立,則對(duì)換,小于號(hào)表示降序排列,大于號(hào)表示升序排列.s=ai;ai=aj;aj二s;for(i=0;i=4;i卄)/重新定義循環(huán)輸出數(shù)組中新排列的數(shù).printfai);return0;目空92:纟愛(ài)圭必?fù)煨M令I(lǐng):.#includeintmainOinti,sum=0;這是個(gè)簡(jiǎn)單的程序.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)關(guān)鍵句,用并的符號(hào).printf(Canbedevideby3and5!n);elseprintf(Z/Cannotbedevideby3and5!rT);return0;P0360.6輸出力0啟間的素?cái)?/*第科1方法.#include/網(wǎng)絡(luò)版本,采用調(diào)用函數(shù)和求根取素.#include下面用到sqrt,所以需要包含數(shù)據(jù)函數(shù).sqrt是求根,屬數(shù)學(xué)函數(shù).intmainO學(xué)會(huì)個(gè)程序采用”主函數(shù)+被調(diào)用函數(shù)”的方式,會(huì)比較規(guī)范.inti;for(i二10

12、0;i二200;i+)/為了書寫規(guī)范,最好加上,以示清范圍.if(prime_number(i)=1)/i是實(shí)參.printf(z,%d,i);return0;intprime_number(doublem)/m是形參.intj,k;k=(int)sqrt(m);/求根,(int)是強(qiáng)制轉(zhuǎn)換,求根里要是浮點(diǎn)型.for(j=2;j=k;j+)辻(m%j=0)return0;此值返回給主函數(shù)中的實(shí)參.return1;includeincludeintmainOinti;for(i=100;i=200;i+)指定至間.if(prime(i)=l)這里i為實(shí)參,傳入形參j中進(jìn)行運(yùn)算,然后再由形參j帶出

13、返回.printf(%distheprimenumber!rT,i);return0;intprime(intj)/j是形參,用于接收實(shí)參i給的值.intm,n;m=(int)sqrt(j);for(n=2;n=m;n+)辻(j%n=0)return0;返回值,0為不是素?cái)?shù),1是素?cái)?shù).return1;請(qǐng)仿照2.5來(lái)寫.紀(jì)徑2乙至主簽魚蠱企意士簽魚熱.include/最大公約數(shù)用累除法,除到無(wú)余數(shù)時(shí)的被除數(shù)是最大公約數(shù).main()intm,n,c,d;intgcdO;這是最大公約數(shù)的縮寫,此處調(diào)用函數(shù),可以不寫里而的實(shí)參.intlcm();這是最小公倍數(shù)的縮寫,此處調(diào)用函數(shù),可以不寫里而的實(shí)參

14、.printf(Pleaseinputtwonumber:rT);scanf(%d%d,&m,&n);c=gcd(m,n);c獲取最大公約數(shù)d=lcm(m,n);/d獲取最小公倍數(shù)printf(TheGCDof%dand%dis:%d!n,m,n,c);printf(,zTheLCMof%dand%dis:%d!n,m,n,d);return0;intgcd(intx,inty)/最大公約數(shù)GreatestCommonDivisorinttemp;while(x%y!=0)temp二y;/y在下一輪中作為除數(shù),即是下輪中的X,所以先閃-邊去.y=x%y;/x,y的余數(shù)作為下一輪中的Y,由x%y

15、來(lái)取得.x二temp;剛才temp中存儲(chǔ)了y的值,現(xiàn)在拿出來(lái)作為下輪中的X使用.returny;這是每一輪中的被除數(shù),按原理來(lái),這就是最大公約數(shù),即累除法的原理.intlcm(intx,inty)/最小公倍數(shù)LowestCommonMultipleinti,temp;if(xy)保證二者大的數(shù)在X上,小的數(shù)在Y上.小于號(hào)降序,大于號(hào)升序.以下為經(jīng)典三行碼,實(shí)現(xiàn)兩個(gè)數(shù)的互換.temp=x;X二y;y二temp;for(i=l;i=y;i+)/設(shè)定個(gè)區(qū)間,從1至小的數(shù)之間的循環(huán).if(!(x*i)%y)除得盡為冬,非零為真,則成立并返凹.如此往復(fù),直到収模無(wú)余數(shù),那么小的數(shù)X乘以區(qū)間當(dāng)前的I值,就

16、是最小公倍數(shù).returnx*i;最簡(jiǎn)單的c程序設(shè)計(jì)一一順序程序設(shè)計(jì)P0373.1把華氏溫庚拷化鬲銀氏素斥右ttincludefloatF_to_C(floatinput_fah)/代表華轉(zhuǎn)攝,input_fah是局部變量.floatoutput_cen;/這里也是局部變量.output_cen=(5.0/9)*(input_fah32);/函數(shù)的功能體.returnoutput_cen;返回值,注意,返回值的數(shù)據(jù)類型應(yīng)該和函數(shù)致.floatC_to_F(floatinput_cen)floatoutput_fdh;output_fah=(9.0/5)*input_cen+32;/轉(zhuǎn)換過(guò)程.r

17、eturnoutput_fah;intmainOintchoice;floatinput_fah,input_cen,output_fah,output_cen;/局部變量的調(diào)用及參數(shù)傳遞.printf(F_to_CpressandC_to_Fpress!n);scanf(%d,&choice);if(choice=l)printf(Pleaseinputfahrenheit:“);scanf&input_fah);這個(gè)是主函數(shù)定義的變量,雖然和調(diào)用函數(shù)同洛.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個(gè)字母.charcl,c2;cl二A;c2=cl+32;printf(,z%c%d,c2,c2);return0;70593.4伶出三角形邊農(nóng),尊出面張,#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);/默認(rèn)可以組成三角形.return0;P065.玄丄遵二遠(yuǎn)三生蓋埜魚趨:越銓西個(gè)丞圍媲: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是浮點(diǎn)型,默認(rèn)是double.可以是float.printf(,z%.9fn,a/3);return0;P072.昱乙血理蠱老電魚煞邕蟲:.#include#includeintmainOfloata;輸出的結(jié)果是.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代碼的縮寫,因?yàn)榇撕瘮?shù)只能輸

22、出字符.putchar(66);return0;昱纟_您週盈獨(dú)鷹型拓蠱二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國(guó)氏望產(chǎn)總

23、值力弄后的憎衣信毅,includestdio.h#includeintmainOdoublep,r=0.09,n=10;p=pow(l+r),n);這是數(shù)學(xué)函數(shù),pow(x,y)計(jì)算x的y次方.printf(Pis%lfwhen10yearslater.rT,p);return0;/結(jié)果是0.36倍.#include#includeintmain()/年份和當(dāng)年利率均有給出.doublep,r,n;/1292.5,這是全五年期.If輸出的是double型./1270.76,這是先二年,再三年的./1270.76,這是先三年,再二年的.證明,是一樣的./1224.86,這難道說(shuō)是,相對(duì)的存死期越

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、_農(nóng)仏企衛(wèi)要巴遂更:.include#includemath.hintmainOdoublem,r=0.01,d=300000,p=6000;m=(loglO(p/(p-d*r)/(loglO(1+r);printf(z/%.lir,m);按要求只留個(gè)小數(shù),所以要寫%.Ilf.return0;0.6常母密碼袴換,調(diào)用島赦及臨界處謖,includecharprintcode(charf)if(int)f86&(int)f118&(int)f123)return(f-26+4);因?yàn)閜utchar會(huì)自動(dòng)返M,所以改成return,因?yàn)檫@是在函數(shù)中,調(diào)用需要返回值.elsereturn(f+4);i

26、ntmain()chara,b,c,d,e;printf(Pleaseinput:rT);a二getchar();b二getchar();c=getchar();d=getchar();e=getchar();/臨界問(wèn)題.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;/注意理解自定義函數(shù)的定義,使用,及形參實(shí)參的流向./p84的是計(jì)算問(wèn)題,自己看著辦,最后要求小數(shù)點(diǎn)后兩位,用的是%.21f來(lái)實(shí)現(xiàn),因?yàn)闆](méi)有要求實(shí)部,所以m.11格式中m不寫./p84的是定義問(wèn)題,第一問(wèn),兩者都行,但是定義字母時(shí),scemf要寫%c來(lái)獲取,而定義數(shù)值時(shí)則要用%(1來(lái)獲取./第二問(wèn),putchar貌似只能輸出字符,所以用printf.putchar木身就是字符輸出函數(shù)啦,字符,有木有!字符?。”M管它的參數(shù)可以是putcharCMOD,效果是輸出字符A啊./第三問(wèn),出現(xiàn)任何及無(wú)條件,那么答案明顯是否.可以轉(zhuǎn)換,但要在某此條件下,例如輸出和讀入時(shí)

28、,c是字母,而%d是數(shù)值,看著辦.選擇結(jié)構(gòu)程序設(shè)計(jì)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);/出錯(cuò)時(shí),注意檢査這里是否按格式輸入了.比如有個(gè)逗號(hào).遷(ab)t二a;a=b;b=t;printf(%5.2f,%5.2fn,a,b);return0;704.3三個(gè)敘按丈小輸岀,#includeintm

29、ainO此程序代表按大小順序輸出.floata,b,c,t;scanfC%f%f%f,&a,&b,&c);辻(ab)此處執(zhí)行后,a為小者.t=a;a=b;b=t;if(ac)此處執(zhí)行后,a為小者.t=a;a=c;c=t;if(bc)上而已經(jīng)搞定s是最小者,現(xiàn)在對(duì)比得出次小者,并且已經(jīng)歸到變量中.t=b;b=c;c=t;printf(5.2f,%5.2f%5.2fn,a,b,c);return0;三0空_纟烈飾扯仝生卷迓遠(yuǎn)俺徑土冬筮世:includeintmain()charch;scanf(%c,&ch);ch=(ch=A&ch=Z,)?(ch+32):ch;條件運(yùn)算符,真取前,假取后.pri

30、ntf(%cn,ch);return0;惣竺纟丄參要更栓魚型產(chǎn)購(gòu)纟魚#includeintmainOintx,y;scanf(%d,&x);if(x=0)if(x0)/這個(gè)范圍要基于x=0來(lái)判斷.y=l;elsey=O;else/這個(gè)是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;/當(dāng)多分支結(jié)構(gòu)過(guò)于多時(shí),可以用switch

31、來(lái)解決.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共用-個(gè)執(zhí)行語(yǔ)句.caseb:caseB:action2(a,b);break;default:putcharCa,);/a可以控制電腦發(fā)出蜂鳴聲.return0;P106_纟丄週購(gòu)僉圭圭邕宜土理聖ttincludeintmainOintyear,leap;priritf(Pleaseinputtheyear:n,z);scanf&year);if(year%4-0)/400年里,在100個(gè)口J除盡4的年里計(jì)算,以下是在全范圍內(nèi)計(jì)算.if(year%100=0)既是100個(gè)內(nèi)的,又是可以除盡100的,算是且.辻(year%40

33、0=0)相當(dāng)于且了兩次,只余下唯一一個(gè).leap=l;else/400年里只有1個(gè)除得盡,其它都不是.leap=0;else/這里的范圍是(year%40)&(year%100!=0)leap=l;在合法的100內(nèi),又不是2100,2200啖的,當(dāng)然屬閏年.elseleap=0;if(leap)printf(%dis,year);elseprintf(%disnot,year);printf(,zaleapyear!);/不管上面如何判斷,最后還是會(huì)輸出這-句.return0;三呂L.纟纟.二並三理蓋埜鬼僉笛遵過(guò)蠱二include#includeintmainOdoublea,b,c,disc

34、,xl,x2,realpart,imagpart;scanf(,z%lf%lf%lf,&a,&b,&c);if(year%4-0)/400年里,在100個(gè)口J除盡4的年里計(jì)算,以下是在全范圍內(nèi)計(jì)算.printf(Theequation“);if(fabs(a)=le6)/fabs是絕對(duì)值,le-6,即是的負(fù)六次方,接近或是等于零.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被盤綺入三個(gè)鼠輸出眾攵卷includeintmina,mida,maxa;in

37、tmax(inta,intb,intc)intm;辻(ab)凡是比較中,大于號(hào)代表升序排列.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);/按要求,只取整數(shù).return0;2?翌0纟一二個(gè)丟套空2笆購(gòu)蠱二羥釜住檢也.#includeincludeintmainOinti,a,b4,count=0;printf(Pleaseinputanumber(five-digitnumber)/意思是五位數(shù)以內(nèi).scanf(%d,&a);for(i=0;i=0;i)printf(,z%d,

39、bi);printf(n);printf(,z倒序輸出這個(gè)數(shù)字,如下:);for(i=0;i=4;i+)printf(%d,bi);printfCrT);return0;P0112-.2呂徑要更莖邑基金煜復(fù)笑ZincludeintmainOdoublea,b;printf(,zPleaseinputprofitamountscanf&a);if(a=10)/這個(gè)是整個(gè)辻的基礎(chǔ).b=a*0.1;elseif=20)/以上面為基礎(chǔ),這已經(jīng)代表了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);返回本身了,如果有進(jìn)步的計(jì)算結(jié)果,將值賦給其它變量,也可以返回.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);不同檔吋,應(yīng)照檔的規(guī)定數(shù)值進(jìn)行輸入,否則結(jié)果不會(huì)是正確的.switch(c)前三后三用于比較調(diào)用函數(shù)./GetProfit(c)引入的實(shí)參沒(méi)有意義,返回值和引入的實(shí)參沒(méi)關(guān)系,反而由鍵盤獲得.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以有個(gè)執(zhí)行體,用包括起來(lái).return0;P01120.11被盤綺入赦仏址后排序輸出,#includeintmainOi

44、nta10,i,變量可以在寫代碼過(guò)程中再回來(lái)臨時(shí)添加.printfC請(qǐng)輸入數(shù)值的個(gè)數(shù):(十個(gè)以內(nèi));scemf&m);/到這里需要變量來(lái)承載數(shù)值的個(gè)數(shù),設(shè)m,回頭去定義變量那寫上m.printf(-請(qǐng)分別輸入相對(duì)應(yīng)個(gè)數(shù)的數(shù)值:);for(i=0;im;i+)scanf(%d,&ai);for(i=0;im;i卄)for(j=i+l;jajj)這是選擇排序法.升序.n=ai;這里需要一個(gè)用于臨時(shí)變量的n,所以回頭去寫上.ai=aj:aj=n;for(i=0;im;i+)printf(%d,ai);return0;C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))第五章課后習(xí)題答案循環(huán)結(jié)構(gòu)程序設(shè)計(jì)P1155.1用奴滋

45、針耳7至心的合.includeintmain()inti=l,sum=0;、vh訂e(iintmainOinti=l,sum=0;do/do-while可以做的事,用while都可以做到./do-while先做一次執(zhí)行,再判斷條件,而wh訂e卻是先做一個(gè)條件,再執(zhí)行.sunFsum+i;i+;while(iintmain()inti,sum=0;printf(z,Pleaseinputanumberscemf(%d,&i);/輸入10以內(nèi),正常,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以內(nèi),結(jié)果樣.輸入11的話,先做操作,所以sum二11.dosum=sum+i;i+;打Mle(i=10);此重點(diǎn)在于理解二者的差別.printf(Thesumofl10is%d.rT,sum);return0;己經(jīng).2纟住越撿創(chuàng)總二#includeintmainOiriti,b=0,a,c;for(i=0;i=100)break;/break是用于跳出循壞,對(duì)if無(wú)效,對(duì)wh訂eforswitch這類.c=b/i;printf(,zconutis%

47、d,averis%d”,i+l,c);注意%號(hào)后的形式,否則可能輸出錯(cuò)誤.return0;P1275.5洌“的例孔#includeintmainOinti;for(i=l;i20;i+)if(i%3!=0)continue;跳過(guò)木次I,執(zhí)行下一個(gè)i.printf(%d“,i);printf(rT);return0;?LZ9_魚邑二仝住魚矍?L#includeintmainOinti,j,a=O;沒(méi)有給初值,會(huì)出現(xiàn)警告:使用了未初始化的局部變量“獷.for(i=l;i=4;i+)for(j=l;ji*j);printf(rT);return0;Pl3t_.二乙囲二企冬負(fù)敷埜總建墜敷匹竺邕二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)不確定哪項(xiàng)才會(huì)小于等于十的負(fù)六次方,所以不指定,無(wú)限下去./不指定第二項(xiàng),執(zhí)行語(yǔ)句中應(yīng)該有控制跳出的句子,否則死循環(huán).t=(s)*(n/m);/這是第一項(xiàng),s是符號(hào),if(fabs(t)=le-6)/應(yīng)該寫在這里,題目要求這項(xiàng)不累加進(jìn)去.break;SUDFSUin+t;因?yàn)槔奂禹?xiàng)在這里,所以,旦跳出就不會(huì)累加進(jìn)來(lái)了.s=s*(-1);變號(hào)i次.printf(四分之哌的值是%f.n,sum);printfC-個(gè)完整哌的值是,sum*4);return0;下面這段小代碼用來(lái)驗(yàn)證關(guān)于數(shù)值型數(shù)據(jù)類型的關(guān)系去掉注釋,可運(yùn)行./如果出現(xiàn)類似值為全1或是全零的話,一般可以考慮數(shù)據(jù)類型賦值或是定義錯(cuò)了的問(wèn)題./#include/這是關(guān)于intfloatdouble三者關(guān)復(fù)雜關(guān)系的,亂啊,如果看不懂,口J以

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論