版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))第一章課后習(xí)題答案P0061.1向屏幕輸出文字.#include<stdio.h>//預(yù)編譯.代碼均調(diào)試成功,假設(shè)有失誤大多不是代碼問(wèn)題.自已找找.intmain(){ printf("Welcometomybbing\n");return0;//與intmain對(duì)應(yīng),為了程序可移植性,建議全用intmain+return0;.}P0081.2求兩個(gè)數(shù)的和.#include<stdio.h>intmain(){inta,b,sum; a=5; b=4; sum=a+b; printf("Thesumis%d.\n",sum);return0;}P0081.3調(diào)用函數(shù)比擬兩個(gè)數(shù)的大小.#include<stdio.h>intmain(){intmax(intx,inty);//被調(diào)用函數(shù)在主函數(shù)后面,用前先聲明.inta,b,c; scanf("%d,%d",&a,&b);//輸入時(shí)要按格式來(lái),此處的逗號(hào),用空格會(huì)發(fā)生錯(cuò)誤. c=max(a,b);//a,b作為實(shí)參傳入被調(diào)用函數(shù)中. printf("Themaxis%d.\n",c);return0;}intmax(intx,inty)//定義了兩個(gè)形參.{intz;//z屬于局部變量,可與主函數(shù)中相同名字.if(x>y) z=x;else z=y;return(z);//z作為整個(gè)程序的出口值,賦給主函數(shù)中的c.}P0150.6三個(gè)數(shù)的大小.(數(shù)字0表示課后練習(xí)題)#include<stdio.h>intmain(){inta,b,c,d;//d是用于存儲(chǔ)最大值的.intmax(intx,inty,intz);//測(cè)試可知,在VS2023中,可以不預(yù)先聲明. printf("Pleaseinput3numbers:\n"); scanf("%d%d%d",&a,&b,&c);d=max(a,b,c);//調(diào)用函數(shù)中有三個(gè)形參,這里需要傳入三個(gè)實(shí)參,才可運(yùn)算. printf("Themaxis:%d.\n",d);//d可以換成max(a,b,c).}intmax(intx,inty,intz){intm;if(x>y&&x>z)//求三者之大的一種方法. m=x;if(y>x&&y>z) m=y;if(z>y&&z>x) m=z;return(m);//返回值m給主函數(shù)中的d.}C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))第2章課后習(xí)題答案算法——程序的靈魂P(guān)0172.1計(jì)算機(jī)1-5相乘的積.#include<stdio.h>intmain(){inti,s=1;//在執(zhí)行數(shù)值操作前一定要先有個(gè)初值.for(i=1;i<6;i++)//這里是到6. { s=s*i;//相乘 } printf("Thesumis%d.\n",s);return0;}#include<stdio.h>//作出要求:換成1到11間奇數(shù)相乘.intmain(){inti,s=1;//在執(zhí)行數(shù)值操作前一定要先有個(gè)初值.for(i=1;i<12;i++)//這里是到,但題目要求的是取單數(shù).也可以是i=i+2 {if(i%2!=0)//i對(duì)取模,值為非為奇數(shù);為那么為偶數(shù). s=s*i;elsecontinue;//跳過(guò)這個(gè)for循環(huán)的這一次,執(zhí)行下一次. } printf("Thesumis%d.\n",s);return0;}P0192.2按要求輸出80分以上的學(xué)生信息.暫時(shí)沒(méi)法做.P0192.3判斷2000-2500年中的閏年,并輸出.年的概念是地球圍繞太陽(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天,這樣閏年就出現(xiàn)了,也就是每4年要有1年設(shè)置為366天,來(lái)抵消這多出的1天。規(guī)那么為:·1〕如果年份能被4整除,那么該年計(jì)為閏年;可是,假設(shè)不做調(diào)整的話,當(dāng)400年的時(shí)候,累計(jì)才多出96.92天,接近于多出97天,閏年的設(shè)置卻多出來(lái)100天,所以要在400年內(nèi),再撤銷3個(gè)閏年。怎么撤銷呢?就有了下面這個(gè)規(guī)那么:·2〕如果年份能被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天。#include<stdio.h>intmain(){inti;for(i=2000;i<=2200;i++) {if((i%4==0&&i%100!=0)||i%400==0)//閏年的經(jīng)典判斷條件. printf("%disaleapyear!\n",i);else printf("%disnotaleapyear!\n",i); }}P0202.4求(1)-(1/2)+(1/3)……+(1/99)-(1/100)的值.#include<stdio.h>intmain(){floatsign=1,sum=0,deno,term;//關(guān)于有小數(shù)的計(jì)算應(yīng)該用float.for(deno=1;deno<=100;deno++) { term=sign*(1/deno);//term臨時(shí)值,sing符號(hào),deno為分母. sum=sum+term;//第一次總?cè)鎯?chǔ). sign=(-1)*sign;//換號(hào). } printf("Thesumofdeno(指定值)is%f.\n",sum);return0;//假設(shè)是到100的話,結(jié)果為0.68172}P0212.5得到一個(gè)大于3的數(shù),并判斷是否為素?cái)?shù).#include<stdio.h>intmain(){inti,num,n;//像13,37,這樣只能讓和它本身除以外,沒(méi)有其它除數(shù)的叫素?cái)?shù). printf("Pleaseinputanumber:\n");//獲取一個(gè)數(shù)值 scanf("%d",&num);for(i=2;i<num;i++)//在到此數(shù)值間進(jìn)行循環(huán)除,如果除得盡,就不滿足素?cái)?shù)要求. {if(num%i==0)//除得盡,那么不是. { n=1;break;//設(shè)置跳出,才不會(huì)執(zhí)行屢次. } n=0;//按程序走的話,這里會(huì)執(zhí)行屢次,不能用printf語(yǔ)句,會(huì)輸出屢次. }if(n==0)//單出口問(wèn)題,雖然n=0執(zhí)行屢次,但仍然是n=0,這樣才會(huì)只輸出一次. { printf("Itisdoaprimenumber!");//如果是100-200可以加個(gè)〞%d〞,nmu進(jìn)去. }else { printf("Itisnotaprimenumber!"); }return0;}要求用流程圖表示上列算法.要求用N-S圖表示上列算法.…………還要偽代碼P0360.1調(diào)換二個(gè)參數(shù)的值.#include<stdio.h>intmain(){chara='a',b='b',c; c=a; a=b; b=c; printf("anowis%c,bnowis%c!\n",a,b);return0;}P0360.2輸入10個(gè)數(shù),并輸出最大的那一個(gè)數(shù).#include<stdio.h>intmain(){inti,a[10],s=0; printf("Pleaseinput10numbers:\n");for(i=0;i<=9;i++) { scanf("%d",&a[i]); }for(i=0;i<=9;i++) {if(s<a[i])s=a[i]; } printf("%disthebiggestnumber!\n",s);return0;}P0360.3按大小順序輸出一些數(shù).#include<stdio.h>intmain(){inti,j,a[4],s=0; printf("Pleaseinput5numbers:\n");//此處要回車.for(i=0;i<=4;i++) { scanf("%d",&a[i]);//這是取多個(gè)數(shù)的代碼,可以用while控制取到\n符為止. }for(i=0;i<=3;i++)//雙重循環(huán),先一個(gè)外循,再輪所有小循,輪完后再下一個(gè)大循. {for(j=i+1;j<=4;j++)//第一個(gè)循環(huán)是至n-1,第二個(gè)循環(huán)是到n. {if(a[i]>a[j])//如果成立,那么對(duì)換,小于號(hào)表示降序排列,大于號(hào)表示升序排列. { s=a[i]; a[i]=a[j]; a[j]=s; } } }for(i=0;i<=4;i++)//重新定義循環(huán)輸出數(shù)組中新排列的數(shù). printf("%d-",a[i]);return0;}P0360.4求1至100的總合.#include<stdio.h>intmain(){inti,sum=0;//這是一個(gè)簡(jiǎn)單的程序.for(i=0;i<101;i++) sum=sum+i; printf("Thesumofonetoonehundredis%d!\n",sum);return0;}P0360.5判斷一個(gè)數(shù)能否同時(shí)被3和5整除.#include<stdio.h>intmain(){intn; printf("Pleaseinputanumber:\n"); scanf("%d",&n);if(n%3==0&&n%5==0)//關(guān)鍵句,用"并"的符號(hào). printf("Canbedevideby3and5!\n");else printf("Cannotbedevideby3and5!\n");return0;}P0360.6輸出100-200間的素?cái)?shù).//********************第一種方法.#include<stdio.h>//網(wǎng)絡(luò)版本,采用調(diào)用函數(shù)和求根取素.#include<math.h>//下面用到sqrt,所以需要包含數(shù)據(jù)函數(shù).sqrt是求根,屬數(shù)學(xué)函數(shù).intmain()//學(xué)會(huì)一個(gè)程序采用〞主函數(shù)+被調(diào)用函數(shù)〞的方式,會(huì)比擬標(biāo)準(zhǔn).{inti;for(i=100;i<=200;i++)//為了書寫標(biāo)準(zhǔn),最好加上{},以示清范圍.if(prime_number(i)==1)//i是實(shí)參. printf("%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++) {if(m%j==0)return0;//此值返回給主函數(shù)中的實(shí)參. }return1;}//********************第二種方法.#include<stdio.h>#include<math.h>intmain(){inti;for(i=100;i<=200;i++)//指定至間. {if(prime(i)==1)//這里i為實(shí)參,傳入形參j中進(jìn)行運(yùn)算,然后再由形參j帶出返回. printf("%distheprimenumber!\n",i); }return0;}intprime(intj)//j是形參,用于接收實(shí)參i給的值.{intm,n; m=(int)sqrt(j);for(n=2;n<=m;n++) {if(j%n==0)return0;//返回值,0為不是素?cái)?shù),1是素?cái)?shù). }return1; }//********************第二種方法.請(qǐng)仿照2.5來(lái)寫.P0360.7最大公約數(shù)和最小公倍數(shù).#include<stdio.h>//最大公約數(shù)用累除法,除到無(wú)余數(shù)時(shí)的被除數(shù)是最大公約數(shù).main(){intm,n,c,d;intgcd();//這是最大公約數(shù)的縮寫,此處調(diào)用函數(shù),可以不寫里面的實(shí)參.intlcm();//這是最小公倍數(shù)的縮寫,此處調(diào)用函數(shù),可以不寫里面的實(shí)參. printf("Pleaseinputtwonumber:\n"); 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("TheLCMof%dand%dis:%d!\n",m,n,d);return0;}intgcd(intx,inty)//最大公約數(shù)GreatestCommonDivisor{inttemp;while(x%y!=0) { temp=y;//y在下一輪中作為除數(shù),即是下一輪中的X,所以先閃一邊去. y=x%y;//x,y的余數(shù)作為下一輪中的Y,由x%y來(lái)取得. x=temp;//剛剛temp中存儲(chǔ)了y的值,現(xiàn)在拿出來(lái)作為下一輪中的X使用. }returny;//這是每一輪中的被除數(shù),按原理來(lái),這就是最大公約數(shù),即累除法的原理.}intlcm(intx,inty)//最小公倍數(shù)LowestCommonMultiple{inti,temp;if(x<y)//保證二者大的數(shù)在X上,小的數(shù)在Y上.小于號(hào)降序,大于號(hào)升序. {//以下為經(jīng)典三行碼,實(shí)現(xiàn)兩個(gè)數(shù)的互換. temp=x; x=y; y=temp; }for(i=1;i<=y;i++)//設(shè)定一個(gè)區(qū)間,從1至小的數(shù)之間的循環(huán). {if(!((x*i)%y))//除得盡為零,非零為真,那么成立并返回. {//如此往復(fù),直到取模無(wú)余數(shù),那么小的數(shù)X乘以區(qū)間當(dāng)前的I值,就是最小公倍數(shù). returnx*i; } }}最簡(jiǎn)單的C程序設(shè)計(jì)——順序程序設(shè)計(jì)P0373.1把華氏溫度轉(zhuǎn)化為攝氏表示法.#include<stdio.h>floatF_to_C(floatinput_fah)//代表華轉(zhuǎn)攝,input_fah是局部變量.{floatoutput_cen; //這里也是局部變量. output_cen=(5.0/9)*(input_fah-32);//函數(shù)的功能體.returnoutput_cen;//返回值,注意,返回值的數(shù)據(jù)類型應(yīng)該和函數(shù)一致.}floatC_to_F(floatinput_cen){floatoutput_fah; output_fah=(9.0/5)*input_cen+32;//轉(zhuǎn)換過(guò)程.returnoutput_fah;}intmain(){intchoice;floatinput_fah,input_cen,output_fah,output_cen;//局部變量的調(diào)用及參數(shù)傳遞. printf("F_to_Cpress<1>andC_to_Fpress<2>!\n"); scanf("%d",&choice);if(choice==1) { printf("Pleaseinputfahrenheit:"); scanf("%f",&input_fah);//這個(gè)是主函數(shù)定義的變量,雖然和調(diào)用函數(shù)同名.output_cen=F_to_C(input_fah); printf("The華氏is%d,攝氏is%d.",(int)input_fah,(int)output_cen); }if(choice==2) { printf("Pleaseinputcentigrade:"); scanf("%f",&input_cen); output_fah=C_to_F(input_cen); printf("TheCentigradeis%d,andtheFahrenheitis%d.",(int)input_cen,(int)output_fah); }return0;}P0383.2計(jì)算存款利息(關(guān)于精度問(wèn)題).#include<stdio.h>intmain(){floatp0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3; p1=p0*(1+r1); p2=p0*(1+r2); p3=p0*(1+r3/2)*(1+r3/2); printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3);return0;}P0553.3大寫轉(zhuǎn)換成小寫#include<stdio.h>intmain()//小寫范圍是97-122,大寫范圍是65-90,大寫加上即得小寫.26個(gè)字母.{charc1,c2; c1='A'; c2=c1+32; printf("%c%d",c2,c2);return0;}P0593.4給出三角形邊長(zhǎng),算出面積.#include<stdio.h>#include<math.h>intmain(){doublea=3.67,b=5.43,c=6.21,s,area; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("areais%f\n",area);//默認(rèn)可以組成三角形.return0;}P0653.5求一無(wú)二次等式的根,默認(rèn)兩個(gè)不同根.#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q; scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf("x1=%7.2f\nx2=%7.2f",x1,x2);return0;}P0713.6用%f輸出實(shí)數(shù),只能得到六位小數(shù).#include<stdio.h>#include<math.h>intmain(){doublea=1.0;//1是整型,1.0是浮點(diǎn)型,默認(rèn)是double.可以是float. printf("%.9f\n",a/3);return0;}P0723.7float型數(shù)據(jù)的有效位數(shù).#include<stdio.h>#include<math.h>intmain(){floata;//輸出的結(jié)果是.333252,float精度6位,所以第七位后不可信. a=10000/3.0; printf("%f\n",a);return0;}P0783.8使用putchar函數(shù)輸出.#include<stdio.h>#include<math.h>intmain(){chara='B',b='O',c='Y'; putchar(a); putchar(b); putchar(c); putchar('\n'); putchar(101);//101是A的ASCII代碼的縮寫,因?yàn)榇撕瘮?shù)只能輸出字符. putchar(66);return0;}P0793.9使用getchar得到字符.#include<stdio.h>#include<math.h>intmain(){chara,b,c; a=getchar(); b=getchar(); c=getchar(); putchar(a); putchar(b); putchar(c);//這也是根本回顯的C程序代碼. putchar('\n');return0;}P0813.10getchar得到大寫,putchar輸出小寫.#include<stdio.h>#include<math.h>intmain(){chara,b; a=getchar(); b=a+32; putchar(b); putchar('\n');return0;}P0820.1國(guó)民生產(chǎn)總值10年后的增長(zhǎng)倍數(shù).#include<stdio.h>#include<math.h>intmain(){doublep,r=0.09,n=10; p=pow((1+r),n);//這是數(shù)學(xué)函數(shù),pow(x,y)計(jì)算x的y次方. printf("Pis%lfwhen10yearslater.\n",p);return0;//結(jié)果是0.36倍.}P0820.2求各種存款的利息數(shù).#include<stdio.h>#include<math.h>intmain(){doublep,r,n;//年份和當(dāng)年利率均有給出. p=1000*(1+5*0.0585); printf("5yearsis%lf!\n",p);//1292.5,這是全五年期.lf輸出的是double型. p=(1000*(1+2*0.0468)); p=(p*(1+3*0.0540)); printf("5yearsis%lf!\n",p);//1270.76,這是先二年,再三年的. p=(1000*(1+3*0.0540)); p=(p*(1+2*0.0468)); printf("5yearsis%lf!\n",p);//1270.76,這是先三年,再二年的.證明,是一樣的. p=1000*pow((1+0.0414),5); printf("5yearsis%lf!\n",p);//1224.86,這難道說(shuō)是,相對(duì)的存死期越久越值錢. p=1000*pow((1+0.072/4),4*5); printf("5yearsis%lf!\n",p);//1428.74.return0;}P0830.3求幾個(gè)月要以還貸.#include<stdio.h>#include<math.h>intmain(){doublem,r=0.01,d=300000,p=6000; m=(log10(p/(p-d*r)))/(log10(1+r)); printf("%.1lf",m);//按要求只留一個(gè)小數(shù),所以要寫%.1lf.return0;}P0840.6字母密碼轉(zhuǎn)換,調(diào)用函數(shù)及臨界處理.#include<stdio.h>charprintcode(charf){if(((int)f>86&&(int)f<91)||((int)f>118&&(int)f<123)) {return(f-26+4);//因?yàn)閜utchar會(huì)自動(dòng)返回,所以改成return,因?yàn)檫@是在函數(shù)中,調(diào)用需要返回值. }else {return(f+4); }}intmain(){chara,b,c,d,e; printf("Pleaseinput:\n"); a=getchar(); b=getchar(); c=getchar(); d=getchar(); e=getchar();//臨界問(wèn)題. printf("%c%c%c%c%c",printcode(a),printcode(b),printcode(c),printcode(d),printcode(e)); putchar(putcharcode(a)); putchar(putcharcode(b)); putchar(putcharcode(c)); putchar(putcharcode(d)); putchar(putcharcode(e));return0;//注意理解自定義函數(shù)的定義,使用,及形參實(shí)參的流向.//p84的是計(jì)算問(wèn)題,自己看著辦,最后要求小數(shù)點(diǎn)后兩位,用的是%.2lf來(lái)實(shí)現(xiàn),因?yàn)闆](méi)有要求實(shí)部,所以m.n格式中m不寫.//p84的是定義問(wèn)題,第一問(wèn),兩者都行,但是定義字母時(shí),scanf要寫%c來(lái)獲取,而定義數(shù)值時(shí)那么要用%d來(lái)獲取.//第二問(wèn),putchar貌似只能輸出字符,所以用printf.putchar本身就是字符輸出函數(shù)啦,字符,有木有!!!字符啊!!盡管它的參數(shù)可以是putchar('\101'),效果是輸出字符A啊.//第三問(wèn),出現(xiàn)"任何"及"無(wú)條件",那么答案明顯是"否".可以轉(zhuǎn)換,但要在某此條件下,例如輸出和讀入時(shí),%c是字母,而%d是數(shù)值,看著辦.}選擇結(jié)構(gòu)程序設(shè)計(jì)P0864.1一無(wú)二次方程求根的二分支.#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q; scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c;if(disc<0)//這是選擇結(jié)構(gòu)和其判斷條件的例如. printf("Thisequationhasn'trealroots\n");else { p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf("x1=%7.2f\nx2=%7.2f",x1,x2); }return0;}P0874.2二個(gè)數(shù)按大小輸出.#include<stdio.h>intmain()//此程序代表按大小順序輸出.{floata,b,t; scanf("%f%f",&a,&b);//出錯(cuò)時(shí),注意檢查這里是否按格式輸入了.比方有個(gè)逗號(hào).if(a>b) { t=a; a=b; b=t; } printf("%5.2f,%5.2f\n",a,b);return0;}P0884.3三個(gè)數(shù)按大小輸出.#include<stdio.h>intmain()//此程序代表按大小順序輸出.{floata,b,c,t; scanf("%f%f%f",&a,&b,&c);if(a>b)//此處執(zhí)行后,a為小者. { t=a; a=b; b=t; }if(a>c)//此處執(zhí)行后,a為小者. { t=a; a=c; c=t; }if(b>c)//上面已經(jīng)搞定a是最小者,現(xiàn)在比照得出次小者,并且已經(jīng)歸到變量中. { t=b; b=c; c=t; } printf("%5.2f,%5.2f%5.2f\n",a,b,c);return0;}P0994.4判斷輸入字符,并最終按小寫輸出.#include<stdio.h>intmain(){charch; scanf("%c",&ch); ch=(ch>='A'&&ch<='Z')?(ch+32):ch;//條件運(yùn)算符,真取前,假取后. printf("%c\n",ch);return0;}P1004.5按要求輸出相應(yīng)的Y值.#include<stdio.h>intmain(){intx,y; scanf("%d",&x);if(x>=0) {if(x>0)//這個(gè)范圍要基于x>=0來(lái)判斷. { y=1; }else { y=0; } }else//這個(gè)是x<0的范圍. { y=-1; } printf("x=%d,y=%d",x,y);return0;}P1024.6switch的簡(jiǎn)單應(yīng)用.#include<stdio.h>intmain(){chargrade; scanf("%c",&grade); printf("Yourscore:");switch(grade) {case'a':printf("85-100\n");break;//當(dāng)多分支結(jié)構(gòu)過(guò)于多時(shí),可以用switch來(lái)解決.case'b':printf("70-84\n");break;case'c':printf("60-69\n");break;case'd':printf("<60\n");break;default:printf("Enterdataerror!\n"); }return0;}P1044.7按輸入執(zhí)行操作,并且不分大小寫.#include<stdio.h>voidaction1(intx,inty){ printf("x+y=%d\n",x+y);}voidaction2(intx,inty){ printf("x*y=%d\n",x*y);}intmain(){charch;inta=15,b=23; ch=getchar();switch(ch) {case'a':case'A':action1(a,b);break;//a,A共用一個(gè)執(zhí)行語(yǔ)句.case'b':case'B':action2(a,b);break;default:putchar('\a');//'\a'可以控制電腦發(fā)出蜂鳴聲. }return0;}P1064.8用if的分支來(lái)做閏年問(wèn)題#include<stdio.h>intmain(){intyear,leap; printf("Pleaseinputtheyear:\n"); scanf("%d",&year);if(year%4==0)//400年里,在100個(gè)可除盡4的年里計(jì)算,以下是在全范圍內(nèi)計(jì)算. {if(year%100==0)//既是100個(gè)內(nèi)的,又是可以除盡100的,算是且. {if(year%400==0)//相當(dāng)于且了兩次,只余下唯一一個(gè). { leap=1; }else//400年里只有1個(gè)除得盡,其它都不是. { leap=0; } }else//這里的范圍是(year%4==0)&&(year%100!=0) { leap=1;//在合法的100內(nèi),又不是2100,2200一類的,當(dāng)然屬閏年. } }else { leap=0; }if(leap) { printf("%dis",year); }else { printf("%disnot",year); } printf("aleapyear!");//不管上面如何判斷,最后還是會(huì)輸出這一句.return0;}P1084.9一元二次等式的全計(jì)算過(guò)程.#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,realpart,imagpart; scanf("%lf%lf%lf",&a,&b,&c); printf("Theequation");if(fabs(a)<=1e-6)//fabs是絕對(duì)值,le-6,即是的負(fù)六次方,接近或是等于零. { printf("isnotaquadratic!\n"); printf("x1=x2=%lf",-c/b); }else { disc=b*b-4*a*c;if(fabs(disc)<=1e-6)//指數(shù)形式,數(shù)字1. { printf("hastwoequalroots:%lf\n",-b/(2*a)); }else {if(disc>1e-6) { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("hasdistinctrealroots:%lfand%lf\n",x1,x2); }else { realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("hascomplexroots:\n"); printf("%lf+%lfi\n",realpart,imagpart); printf("%lf+%lfi\n",realpart,imagpart); } } }return0;}P1094.10關(guān)于多個(gè)區(qū)間的計(jì)算,運(yùn)費(fèi)問(wèn)題為例.#include<stdio.h>intmain(){doublep,w,s,d,f; printf("p,w,s\n"); scanf("%lf%lf%lf",&p,&w,&s);if(s<250) { d=0.0; f=p*w*s*(1-d); printf("%lf",f); }elseif(s<500) { d=0.02; f=p*w*s*(1-d); printf("%lf",f); }elseif(s<1000) { d=0.05; f=p*w*s*(1-d); printf("%lf",f); }elseif(s<2000) { d=0.08; f=p*w*s*(1-d); printf("%lf",f); }elseif(s<3000) { d=0.1; f=p*w*s*(1-d); printf("%lf",f); }else { d=0.15; f=p*w*s*(1-d); printf("%lf",f); }return0;}P01120.4鍵盤輸入三個(gè)數(shù),輸出最大者.#include<stdio.h>intmina,mida,maxa;intmax(inta,intb,intc){intm;if(a>b)//但凡比擬中,大于號(hào)代表升序排列. { m=a; a=b; b=m; }if(a>c) { m=a; a=c; c=m; }if(b>c) { 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!\n",max(a,b,c));return0;}P01120.5一個(gè)小于1000的數(shù),有判定條件.#include<stdio.h>#include<math.h>intmain(){doublea,b; printf("Pleaseinputanumber:"); scanf("%lf",&a);if(a<1000) { b=sqrt(a); }else { printf("\a");//控制蜂鳴聲 printf("Pleaseinputanumberagain:"); scanf("%lf",&a);11 b=sqrt(a); } printf("%.0lf",b);//按要求,只取整數(shù).return0;}P01120.9一個(gè)不多于5位的數(shù),按條件輸出.#include<stdio.h>#include<math.h>intmain(){inti,a,b[4],count=0; printf("Pleaseinputanumber(five-digitnumber):");//意思是五位數(shù)以內(nèi). scanf("%d",&a);for(i=0;i<=4;i++) { b[i]=a%10;//是%10,不是/10000,結(jié)果就是b[0]至b[4]中存著個(gè),十,百,千,萬(wàn)位. a=a/10;///10后得到的結(jié)果去掉了個(gè)數(shù).if(b[i]!=0) { count=count+1; } } printf("%d位數(shù).\n",count); printf("分別輸出每一位數(shù)字,如下:");for(i=4;i>=0;i--) { printf("%d",b[i]); } printf("\n"); printf("倒序輸出這一個(gè)數(shù)字,如下:");for(i=0;i<=4;i++) { printf("%d",b[i]); } printf("\n");return0;}P01120.10按要求提成獎(jiǎng)金(if寫法).#include<stdio.h>intmain(){doublea,b; printf("Pleaseinputprofitamount:"); scanf("%lf",&a);if(a<=10)//這個(gè)是整個(gè)if的根底. { b=a*0.1; }elseif(a<=20)//以上面為根底,這已經(jīng)代表了10-20間了!!! { b=1+(a-10)*0.075; }elseif(a<=40)//同理,這是20-40間. { b=1+0.75+(a-20)*0.05; }elseif(a<=60) { b=1+0.75+0.1+(a-40)*0.03; }elseif(a<=100) { b=1+0.75+0.1+0.06+(a-60)*0.15; }else//這里是大于100的. { b=1+0.75+0.1+0.06+(a-100)*0.01; } printf("Therewardis%lf!\n",b);return0;}P01120.10按要求提成獎(jiǎng)金(switch寫法).#include<stdio.h>doubleGetProfit(doublec){ printf("Pleaseinputprofitamount:"); scanf("%lf",&c);return(c);//返回本身了,如果有進(jìn)一步的計(jì)算結(jié)果,將值賦給其它變量,也可以返回.}intmain(){doublea;charc; printf("Yourchoice:\nA:0-10;\nB:10-20;\nC:20-40;\nD:40-60;\nE:60-100;\nF:100-1000;\n"); scanf("%c",&c);//不同檔時(shí),應(yīng)照檔的規(guī)定數(shù)值進(jìn)行輸入,否那么結(jié)果不會(huì)是正確的.switch(c)//前三后三用于比擬調(diào)用函數(shù). { //GetProfit(c)引入的實(shí)參沒(méi)有意義,返回值和引入的實(shí)參沒(méi)關(guān)系,反而由鍵盤獲得.case'A':{printf("Therewardis%lf!\n",GetProfit(c)*0.1);};break;//0-100.100case'B':{printf("Therewardis%lf!\n",1+(GetProfit(c)-10)*0.075);}break;//10-200.075case'C':{printf("Therewardis%lf!\n",1+0.75+(GetProfit(c)-20)*0.05);}break;//20-400.050case'D':{printf("Pleaseinputprofitamount:");scanf("%lf",&a);printf("Therewardis%lf!\n",1+0.75+0.1+(a-40)*0.03);}break; //40-600.030case'E':{printf("Pleaseinputprofitamount:");scanf("%lf",&a);printf("Therewardis%lf!\n",1+0.75+0.1+0.6+(a-60)*0.15);}break; //60-1000.015case'F':{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("Errordata!");break;//可以有一個(gè)執(zhí)行體,用{}包括起來(lái). }return0;}P01120.11鍵盤輸入數(shù)值,然后排序輸出.#include<stdio.h>intmain(){inta[10],i,j,m,n;//變量可以在寫代碼過(guò)程中再回來(lái)臨時(shí)添加. printf("請(qǐng)輸入數(shù)值的個(gè)數(shù):(十個(gè)以內(nèi))"); scanf("%d",&m);//到這里需要變量來(lái)承載數(shù)值的個(gè)數(shù),設(shè)m,回頭去定義變量那寫上m. printf("請(qǐng)分別輸入相對(duì)應(yīng)個(gè)數(shù)的數(shù)值:");for(i=0;i<m;i++) { scanf("%d",&a[i]); }for(i=0;i<m;i++) {for(j=i+1;j<m;j++) {if(a[i]>a[j])//這是選擇排序法.升序. { n=a[i];//這里需要一個(gè)用于臨時(shí)變量的n,所以回頭去寫上. a[i]=a[j]; a[j]=n; } } }for(i=0;i<m;i++) { printf("%d",a[i]); }return0;}C程序設(shè)計(jì)(第四版)(譚浩強(qiáng))第五章課后習(xí)題答案循環(huán)結(jié)構(gòu)程序設(shè)計(jì)P1155.1用while計(jì)算1至100的合.#include<stdio.h>intmain(){inti=1,sum=0;while(i<=100)//對(duì)于需要運(yùn)算的值,要么在運(yùn)算前可以賦值,要么一開(kāi)始要指定. { sum=sum+i; i++; } printf("Thesumis%d.\n",sum);return0;}P1175.2用do-while來(lái)做1至100的合.#include<stdio.h>intmain(){inti=1,sum=0;do//do-while可以做的事,用while都可以做到. {//do-while先做一次執(zhí)行,再判斷條件,而while卻是先做一個(gè)條件,再執(zhí)行. sum=sum+i; i++; }while(i<=100); printf("Thesumis%d.\n",sum);return0;}P1185.3比擬do-while與while的差異.#include<stdio.h>intmain(){inti,sum=0; printf("Pleaseinputanumber:"); scanf("%d",&i);//輸入10以內(nèi),正常,11的話,那么sum仍然是0.while(i<=10) { sum=sum+i; i++; } printf("Thesumof1-10is%d.\n",sum);return0;}#include<stdio.h>intmain(){inti,sum=0; printf("Pleaseinputanumber:"); scanf("%d",&i);//輸入10以內(nèi),結(jié)果一樣.輸入11的話,先做操作,所以sum=11.do { sum=sum+i; i++; }while(i<=10);//此重點(diǎn)在于理解二者的差異. printf("Thesumof1-10is%d.\n",sum);return0;}P1265.4break的例子.#include<stdio.h>intmain(){inti,b=0,a,c;for(i=0;i<=1000;i++) { printf("Pleaseinputamount:");//循環(huán)體內(nèi)套有輸出語(yǔ)句以及跳出語(yǔ)句. scanf("%d",&a); b=b+a;if(b>=100) {break;//break是用于跳出循環(huán),對(duì)if無(wú)效,對(duì)whileforswitch這一類. } } c=b/i; printf("conutis%d,averis%d",i+1,c);//注意%號(hào)后的形式,否那么可能輸出錯(cuò)誤.return0;}P1275.5continue的例子.#include<stdio.h>intmain(){inti;for(i=1;i<20;i++) {if(i%3!=0) {continue;//跳過(guò)本次I,執(zhí)行下一個(gè)i. } printf("%d",i); } printf("\n");return0;}P1285.6形成一個(gè)4*5的矩陣.#include<stdio.h>intmain(){inti,j,a=0;//沒(méi)有給初值,會(huì)出現(xiàn)警告:使用了未初始化的局部變量“a〞 .for(i=1;i<=4;i++) {for(j=1;j<=5;j++,a++)//a用來(lái)控制換行. {if(a%5==0) { printf("\n"); } printf("%d\t",i*j); } } printf("\n");return0;}P1315.7用一個(gè)交錯(cuò)的式子求哌的近似值.#include<stdio.h>#include<math.h>intmain()//四分之哌等于(1)-(1/3)+(1/5)-(1/7)+(1/9)-(1/11).{floats=1,n=1,m,sum=0,t;for(m=1;;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)<=1e-6)//應(yīng)該寫在這里,題目要求這一項(xiàng)不累加進(jìn)去. {break; } sum=sum+t;//因?yàn)槔奂禹?xiàng)在這里,所以,一旦跳出就不會(huì)累加進(jìn)來(lái)了. s=s*(-1);//變號(hào)一次. } printf("四分之一哌的值是%f.\n",sum); printf("一個(gè)完整哌的值是%f.\n",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<stdio.h>//這是關(guān)于intfloatdouble三者關(guān)復(fù)雜關(guān)系的,亂啊,如果看不懂,可以通過(guò)實(shí)驗(yàn)自己明白來(lái).////intmain()//在C語(yǔ)言中,1.0認(rèn)為是實(shí)數(shù),即是double型,所以,如果你把它用float輸出的話,會(huì)有警告:警告 1 warningC4305:“=〞:從“double〞到“float〞截?cái)?.//{// floatm,a,b,c;//一旦定義了是這種類型的話,輸出或是賦值的時(shí)候只能擴(kuò)展不能截?cái)?意思就是能變成double型,不能變成int型啦.而且后面的賦值會(huì)跟著它變成相應(yīng)的類型.比方下面的m=1,其實(shí)得到的是m=1.0.// intd,e,f;// m=1;// a=1.0/3;// b=1/3;// c=m/3;// d=1.0;// e=1/4;// f=1.0/4;// printf("%lf(float用double的%lf來(lái)輸出是可以的.)\n%f\n%f\n%f\n",m,a,b,c);//不管上面定義什么,這邊寫的輸出類型是什么,就按相應(yīng)的類型輸出,有可能會(huì)出錯(cuò),所以建議按定義的類型來(lái)輸出.當(dāng)然擴(kuò)展的是不會(huì)錯(cuò)的,截?cái)嗟氖菚?huì)錯(cuò)的,比方float可以用%lf來(lái)輸出,而不能用%d來(lái)輸出.// printf("%d\n%d\n%d\n",d,e,f);//但是,不相應(yīng)的int型不可以用%f來(lái)輸出的.因?yàn)閕ntfloat就不同種類,一個(gè)是整數(shù),一個(gè)是小數(shù),floatdouble同樣是有小數(shù)點(diǎn)的!!!!// return0;//}P1335.8著名的Fibonacci(費(fèi)波那契數(shù)列問(wèn)題)#include<stdio.h>intmain()//這個(gè)就是著名的Fibonacci(費(fèi)波那契數(shù)列問(wèn)題){intf1=1,f2=1,f3,i; printf("%12d\n%12d\n",f1,f2);for(i=1;i<=38;i++)//注意,這是個(gè)根底問(wèn)題,(i=1;i<=5;i++)這里其實(shí)進(jìn)行了次運(yùn)算,因?yàn)橛衒1,f2,要求有個(gè),所以要有個(gè).要么寫<=38,要么寫<39,邊界問(wèn)題一定要注意,不可以太隨意!!!! { f3=f1+f2; printf("%12d\n",f3);//這個(gè)問(wèn)題同樣適用于"一對(duì)兔子一個(gè)月生一對(duì)"的問(wèn)題., f1=f2;//f1=f1+f2;此時(shí)它們各是,所以,現(xiàn)在的f1是. f2=f3;//f2=f2+f1;此時(shí)的f1已經(jīng)是最先二者之和了.可以不用到f3. }return0;}P1355.9還是求素?cái)?shù),方法不一樣.#include<stdio.h>#include<math.h>intmain(){doublenum;inti; printf("Pleaseinputanumber:"); scanf("%lf",&num);//因?yàn)閟qrt要求是浮點(diǎn)型,那就給它浮點(diǎn)型,需要時(shí)再?gòu)?qiáng)制轉(zhuǎn)換.for(i=2;i<=sqrt(num);i++)//這邊是<=號(hào)沒(méi)錯(cuò). {if((int)num%i==0)//如果在這期間有任何一個(gè)可以為零的話,那么不是素?cái)?shù). {break;//當(dāng)然跳出. } }//執(zhí)行到這里的時(shí)候,i=5,已經(jīng)變成了!!if(i<=sqrt(num)) { printf("Not%d",(int)num); }else//如上所述,i=5,超出了求根的值,所以是素?cái)?shù). { printf("Yes%d",(int)num); }return0;}P1375.10求100至200間的素?cái)?shù).#include<stdio.h>//不解釋,HOHO>>>>...#include<math.h>intmain(){doublej;inti,k=0;for(j=100;j<=200;j++) {for(i=2;i<=sqrt(j);i++) {if((int)j%i==0) {break; } } k=k+1;//這里是布局的開(kāi)頭.學(xué)習(xí)一下,有助邏輯.if(i<=sqrt(j)) { printf("Not%d",(int)j);if(k%5==0)//5個(gè)換一次行. { printf("\n"); } }else { printf("Yes%d",(int)j);if(k%5==0) { printf("\n"); } } }return0;}P1395.11密碼轉(zhuǎn)換.#include<stdio.h>intmain(){charc; c=getchar();while(c!='\n')//這也可以用數(shù)組來(lái)實(shí)現(xiàn). {if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) {if((c>='w'&&c<='z')||(c>='W'&&c<='Z')) { c=c-22; }else { c=c+4; } printf("%c",c); c=getchar();//套在循環(huán)里,依次得到字母,而while中判斷回車為結(jié)束. } } printf("\n");//這是布局問(wèn)題.return0;}P1400.3最大公約數(shù)和最小公倍數(shù).#include<stdio.h>//最大公約數(shù)用累除法,除到無(wú)余數(shù)時(shí)的被除數(shù)是最大公約數(shù).main(){intm,n,c,d;intgcd();//這是最大公約數(shù)的縮寫,此處調(diào)用函數(shù),可以不寫里面的實(shí)參.intlcm();//這是最小公倍數(shù)的縮寫,此處調(diào)用函數(shù),可以不寫里面的實(shí)參. printf("Pleaseinputtwonumber:\n"); 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("TheLCMof%dand%dis:%d!\n",m,n,d);return0;}intgcd(intx,inty)//最大公約數(shù)GreatestCommonDivisor{inttemp;while(x%y!=0) { temp=y;//y在下一輪中作為除數(shù),即是下一輪中的X,所以先閃一邊去. y=x%y;//x,y的余數(shù)作為下一輪中的Y,由x%y來(lái)取得. x=temp;//剛剛temp中存儲(chǔ)了y的值,現(xiàn)在拿出來(lái)作為下一輪中的X使用. }returny;//這是每一輪中的被除數(shù),按原理來(lái),這就是最大公約數(shù),即累除法的原理.}intlcm(intx,inty)//最小公倍數(shù)LowestCommonMultiple{inti,temp;if(x<y)//此段代碼結(jié)果是保證二者大的數(shù)在X上,小的數(shù)在Y上.即小于號(hào)降序. {//以下為經(jīng)典三行碼,實(shí)現(xiàn)兩個(gè)數(shù)的互換. temp=x; x=y; y=temp; }for(i=1;i<=y;i++)//設(shè)定一個(gè)區(qū)間,從1至大的數(shù)之間的循環(huán). {if(!((x*i)%y))//此式子如有余數(shù),加上"!"號(hào),會(huì)是假,那么不返回,進(jìn)行下一輪. {//如此往復(fù),直到取模無(wú)余數(shù),那么小的數(shù)X乘以區(qū)間當(dāng)前的I值,就是最小公倍數(shù). returnx*i; } }}P1400.4判斷一串輸入的字符.#include<stdio.h>intmain(){charch;inta=0,b=0,c=0,d=0,e=0; printf("Pleaseinputthestring\n");while((ch=getchar())!='\n')//直到回車. {if(ch<='z'&&ch>='a') { a++; }elseif(ch=='') { c++; }elseif(ch<58&&ch>47) { d++; }elseif(ch<='Z'&&ch>='A') { b++; }else { e++; } } printf("大寫%d小寫%d空格%d數(shù)字%d其它%d\n",a,b,c,d,e);}P1400.52+22+222+2222系列的和.#include<stdio.h>//不理解時(shí)可以百度或是谷歌更多的信息.intmain()//想方法既快速做完,又要消化理解!!!{inttemp,i,a,n,sum=0;//主邏輯,友好性暫時(shí)放松. scanf("%d%d",&a,&n);//a是數(shù)字,n是要乘的個(gè)數(shù). temp=a;//先把第一階的值存起來(lái).for(i=0;i<n;i++) { sum=sum+a; printf("%d+",a);//事關(guān)布局. a=a*10+temp;//重點(diǎn)是每次乘,然后加上上一個(gè)數(shù). } printf("=%d.",sum);return0;}P1400.61!+2!+3!+4!.....的值.#include<stdio.h>intmain()//1!+2!+3!+4!.....{inti,j,k,sum=0,m=1; scanf("%d",&k);//比方設(shè)定為,值為.for(i=1;i<=k;i++)//第一層循環(huán),指定到. {for(j=1;j<=i;j++)//第二層循環(huán),指定至當(dāng)前數(shù). { m=m*j; }//到此是階乘的結(jié)構(gòu). sum=sum+m; m=1; } printf("%d",sum);//完全不理解時(shí),搜索并參考.return0;//嘗試自己做,第一次做出來(lái)就是自己的東西了.}P1400.71至100,1至50平方,1至10倒數(shù)的總和.#include<stdio.h>intmain(){inta,b;doublec,asum=0,bsum=0,csum=0;for(a=1;a<=100;a++)//三個(gè)塊分別注釋驗(yàn)證結(jié)果. { asum=asum+a; }for(b=1;b<=50;b++)//在VS運(yùn)行中,注意*.cpp為C++語(yǔ)言. { bsum=bsum+b*b;//為了防止語(yǔ)言差異,請(qǐng)注意文件名為*.c. }for(c=1;c<=10;c++)//c作浮點(diǎn)運(yùn)算,所以定義在double類型中. { csum=csum+1/c; } printf("%lf",asum+bsum+csum);return0;}PP#include<stdio.h>#include<math.h>intmain(){intj,k,s[6],x=100,y,sum=0;for(j=153;j<=154;j++) {for(k=2;k>=0;k--) { s[k]=j%(int)pow(10,k+1)/(int)pow(10,k); y=pow(s[k],3); sum+=y; printf("%d-%d--%d\t",k,s[k],j); } printf("%d\n",sum); }return0;}P1400.8水仙花數(shù).//#include<stdio.h>//一步步的發(fā)現(xiàn)問(wèn)題.////intmain()//在%和/號(hào)之間,以前pow.以后再做.//{// inti,j,k,a,b,c,sum=0;//這里邏輯對(duì),算出來(lái)卻錯(cuò)了.// for(i=2;i<=4;i++)//計(jì)算機(jī)在想什么,看來(lái)它的大腦難以模擬.// {// for(j=pow(10,i);j<=pow(10,i+1)-1;j++)//我不完全明白它遵守的邏輯.// {// for(k=0;k<=i;k++)// {// sum+=pow((j%pow(10,i+1)/pow(10,i)),3);// }// if(sum==j)// {// printf("%d是水仙花數(shù)!\n",j);// }// sum=0;// }// }// return0;//}//為什么還是無(wú)法實(shí)現(xiàn)?!#include<stdio.h>#include<math.h>intmain(){inta,b,c,i,sum=0;//這里只計(jì)算三位數(shù)的.for(i=100;i<1000;i++) { a=i/100; b=i%100/10; c=i%10; sum+=a*a*a+b*b*b+c*c*c;if(sum==i) { printf("%d是水仙花數(shù).\n",i); } sum=0; }return0;}P1410.9完數(shù).#include<stdio.h>intmain(){inti,j,r;for(i=1;i<=1000;i++)//零是個(gè)臨界值,不能包括它. { r=0;//每次清零重來(lái).類似水仙中的sum.for(j=1;j<i;j++) {if(i%j==0)//除得盡即是因子. { r=r+j;//然后累加進(jìn)去. } }if(r==i)//假設(shè)相等. { printf("%d是完數(shù).\n",i); } }return0;}P1410.102/1+3/2+5/3+8/5+13/8…#include<stdio.h>intmain()//10.007051{doublei,a=2,b=1,c,s=0;//a是分子,b是分母.for(i=0;i<6;i++)//二十可以用戶指定. { s+=a/b;//中間儲(chǔ)值變量. c=a+b; b=a; a=c; } printf("%lf\n",s);return0;}P1410.11球落地并反彈問(wèn)題.#include<stdio.h>intmain()//從一百開(kāi)始,減一半再自加兩次,下降一次,反彈一次.{doublesum=100,high=100,up,donw,i;for(i=1;i<10;i++)//不管指定到哪個(gè)數(shù),都不會(huì)超過(guò)三百. { up=high/2; donw=up; high=donw;//自咬尾巴問(wèn)題. sum+=donw*2; } printf("%lf%lf\n",donw,sum);return0;}P1410.12猴子吃桃子.#include<stdio.h>intmain()//從一百開(kāi)始,減一半再自加兩次,下降一次,反彈一次.{inti,sum=1;for(i=1;i<=10;i++)//臨界要清楚,結(jié)果要與手算的前幾個(gè)實(shí)例相匹配. { printf("倒數(shù)第%d天還剩有%d個(gè)桃子.\n",i,sum); sum=(sum+1)*2; }//printf("%d\n",sum);return0;}P1410.16輸出星號(hào)棱形圖案.#include<stdio.h>#include<conio.h>main()//只關(guān)注左半局部.右半局部無(wú)視空格.{inti,j,k,m=6;//m可指定,指定中心點(diǎn)位置.可任意奇偶.for(i=1;i<=m;i++)//上半局部.其實(shí)也是正三角.{for(j=1;j<=m-i;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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年消防器材智能化改造升級(jí)服務(wù)合同2篇
- 2024租賃合同簽訂程序及條件
- 2025年拓展訓(xùn)練合同范本大全:企業(yè)團(tuán)隊(duì)凝聚力提升計(jì)劃3篇
- 二零二四年度2024年三人健身產(chǎn)業(yè)合作合同6篇
- 2025年洗車場(chǎng)車輛停放管理及承包合同3篇
- 2025版航空航天專用鋁合金采購(gòu)合同書4篇
- 二零二四年云服務(wù)器租賃與智能運(yùn)維合同3篇
- 個(gè)人汽車租賃合同樣本 2024年版版B版
- 2025年度臨時(shí)臨時(shí)設(shè)施租賃合同標(biāo)準(zhǔn)范本4篇
- 2025年無(wú)償使用政府辦公樓場(chǎng)地舉辦會(huì)議合同范本3篇
- 非誠(chéng)不找小品臺(tái)詞
- 2024年3月江蘇省考公務(wù)員面試題(B類)及參考答案
- 患者信息保密法律法規(guī)解讀
- 老年人護(hù)理風(fēng)險(xiǎn)防控PPT
- 充電樁采購(gòu)安裝投標(biāo)方案(技術(shù)方案)
- 醫(yī)院科室考勤表
- 鍍膜員工述職報(bào)告
- 春節(jié)期間化工企業(yè)安全生產(chǎn)注意安全生產(chǎn)
- 保險(xiǎn)行業(yè)加強(qiáng)清廉文化建設(shè)
- Hive數(shù)據(jù)倉(cāng)庫(kù)技術(shù)與應(yīng)用
- 數(shù)字的秘密生活:最有趣的50個(gè)數(shù)學(xué)故事
評(píng)論
0/150
提交評(píng)論