


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C程序設(shè)計(jì)第四版譚浩強(qiáng)第一 章課后習(xí)題答案P0061.1向屏幕輸出文字 I I I I I I IKIHIMI 皿 I I ! I I #inelude<stdio.h> /預(yù)編譯.代碼均調(diào)試成功,假設(shè)有失誤大多不是代碼問題.自已找找 int main()pri ntf("Welcome to mybb ing n");return 0;/與int main 對應(yīng),為了程序可移植性 ,建議全用int main + return 0;.P0081.2 求兩個(gè)數(shù)的和. I I U 1 IMIHI I "!:#i nclude<stdio.h>i
2、nt main()int a,b,sum;a=5;b=4;sum=a+b;pri ntf("The sum is %d .n" ,sum);return 0;P0081.3調(diào)用函數(shù)比擬兩個(gè)數(shù)的大小. I !【i I 【I I II nIi hiii ! i i 【I m hi#i nclude<stdio.h>int main()int max( int x, int y);/被調(diào)用函數(shù)在主函數(shù)后面,用前先聲明.int a,b,c;scanf( "%d,%d",&a,&b);/輸入時(shí)要按格式來,此處的逗號,用空格會(huì)發(fā)生錯(cuò)誤c=
3、max(a,b); /a,b作為實(shí)參傳入被調(diào)用函數(shù)中printf( "The max is %d .n",c);return 0;int max( int x, int y) / 定義了兩個(gè)形參.int z; /z屬于局部變量,可與主函數(shù)中相同名字.if (x>y)z=x;elsez=y;return (z);/z作為整個(gè)程序的岀口值,賦給主函數(shù)中的c.P0150.6 三個(gè)數(shù)的大小.(數(shù)字0表示課后練習(xí)題) II I 【I ll I ! I ! IBIIHI Ml I I ! I I M0 IMI#i nclude<stdio.h>int main()in
4、t a,b,c,d; /d是用于存儲(chǔ)最大值的.int max( int x , int y , int z);/測試可知,在VS2022中,可以不預(yù)先聲明.pr intf( "Please in put 3 n umbers :n");scanf( "%d %d %d",&a,&b,&c);d=max(a,b,c);/調(diào)用函數(shù)中有三個(gè)形參,這里需要傳入三個(gè)實(shí)參,才可運(yùn)算.printf( "The max is :%d .n",d);/ d 可以換成 max(a,b,c).int max( int x , int
5、 y , int z)int m;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 電腦1-5相乘的積.#i nclude <stdio.h>int main()int i,s=1;/在執(zhí)行數(shù)值操作前一定要先有個(gè)初值for (i=1;i<6;i+)/ 這里是到 6.s=s*i;
6、/ 相乘pri ntf( "The sum is %d .n",s);return 0; #include <stdio.h> /作岀要求:換成1到11間奇數(shù)相乘.int main()int i,s=1;/在執(zhí)行數(shù)值操作前一定要先有個(gè)初值for (i=1;i<12;i+)/這里是到,但題目要求的是取單數(shù).也可以是i=i+2if (i%2!=0)/i對取模,值為非為奇數(shù);為那么為偶數(shù).s=s*i;elsecontinue ;/跳過這個(gè)for循環(huán)的這一次,執(zhí)行下一次.pri ntf( "The sum is %d .n",s);return
7、 0;P0192.2按要求輸出80分以上的學(xué)生信息 I1 I I I DIH I I I I ! !I m II ! I暫時(shí)沒法做P0192.3 判斷2000-250(年中的閏年,并輸出. I IIMil ltI UM【 II 1 I l年的概念是地球圍繞太陽一周的時(shí)間所謂公轉(zhuǎn)周期稱為一年,這個(gè)周期是相當(dāng)穩(wěn)定的, 很長時(shí)間也不會(huì)變動(dòng)1秒,但是真正的一年是天目前。所以,如果每年定義為365天的 話,1年就會(huì)多出天,4年就會(huì)多出天,非常接近1天,這樣閏年就出現(xiàn)了,也就是每4年要有1年設(shè)置為366天,來抵消這多出的1天。規(guī)那么為:丨如果年份能被4整除,那么該年 計(jì)為閏年;可是,假設(shè)不做調(diào)整的話,當(dāng)4
8、00年的時(shí)候,累計(jì)才多出天,接近于多出97天, 閏年的設(shè)置卻多出來100天,所以要在400年內(nèi),再撤銷3個(gè)閏年。怎么撤銷呢?就有了下 面這個(gè)規(guī)那么:2如果年份能被100整除,那么不計(jì)為閏年;問題又來了,400年里有4個(gè)100 年吧,去掉后四個(gè)100年后,又少了一個(gè),所以再加一個(gè)規(guī)那么就是:3如果年份能被400整除,那么計(jì)為閏年。簡單說來每400年里設(shè)置了 97個(gè)閏年,也就是400里的前3個(gè)100年 不設(shè)置閏年,誤差被調(diào)整到400年僅有天。#i nclude <stdio.h>int main()int i;for (i=2000;i<=2200;i+)if (i%4=0 &a
9、mp;& i%100!=0)|i%400=0)/ 閏年的經(jīng)典判斷條件 .pri ntf( "%d is a leap year !n",i);elsepri ntf( "%d is not a leap year !n",i);P020Z4 求(1)-(1/?)+(1/3)二二.+(1/99)-(1/100的值.#i nclude<stdio.h>int main()float sign=1 , sum=0 , deno , term ;/ 關(guān)于有小數(shù)的計(jì)算應(yīng)該用float.for (deno=1;deno<=100;deno+
10、)term=sign*(1/deno);/term 臨時(shí)值,sing 符號,deno 為分母.sum=sum+term; /第一次總?cè)鎯?chǔ) .sign=(-1)*sign;/ 換號.printf("The sum of deno( 指定值)is %f .n",sum);return 0;/假設(shè)是到100的話,結(jié)果為P0212.5 得到一個(gè)大于3的數(shù),并判斷是否為素?cái)?shù) IJIHIHIlMaMIHHHIHIH 11 « IHH I I ! HHIBIHI I : I HIM IHIIHI ! I II#i nclude <stdio.h>int main(
11、)int i, num ,n ;/像13,37,這樣只能讓和它本身除以外,沒有其它除數(shù)的叫素?cái)?shù).printf( "Please in put a number :n");/ 獲取一個(gè)數(shù)值seanf( "%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語句,會(huì)輸岀屢次.if (n=0)/單岀口問題,雖然n=0執(zhí)行屢次,但仍然是n=
12、0,這樣才會(huì)只輸岀一次.printf( "It is do a prime number !");/ 如果是 100-200 可以加個(gè) d',nmu進(jìn)去. elseprin tf("It is not a prime n umber !");return 0;要求用流程圖表示上列算法要求用N-S圖表示上列算法. I I I I ! IH I I II I ! I « 還要偽代碼P0360.1調(diào)換二個(gè)參數(shù)的值 1 I I Wl I I !* Him I I I I I#i nclude <stdio.h>int main()c
13、har a= 'a' ,b= 'b' ,c;c=a;a=b;b=c;,a,b);printf("a now is %c , b now is %c !n"return 0;P0360.2 輸入1(個(gè)數(shù)併輸出最大的那一個(gè)數(shù) I I I I II I I Min I I :11 I I IHIIHIIHI I I 1口#i nclude <stdio.h>int main()int i,a10,s=0 ;pr intf("Please in put 10 n umbers :n");for (i=0;i<=9
14、;i+)scanf( "%d",&ai);for (i=0;i<=9;i+)if (s<ai) s=ai;pri ntf("%d is the biggest n umber !n",s);return 0;P0360.3按大小順序輸出一些數(shù) I I I II I IMimmi ! Ml I ! I ! I#in clude <stdio.h> int main()int i , j , a4 , s=0 ;for (i=0 ; i<=4 ; i+)scanf( "%d",&ai);for
15、 (i=0 ; i<=3 ; i+)for (j=i+1 ; j<=4 ; j+)pri ntf("Please in put 5 numbers :n");/ 此處要回車/這是取多個(gè)數(shù)的代碼,可以用while控制取到n符為止./雙重循環(huán),先一個(gè)外循,再輪所有小循,輪完后再下一個(gè)大循/第一個(gè)循環(huán)是至n-1,第二個(gè)循環(huán)是到n.if (ai>aj)/如果成立,那么對換,小于號表示降序排列,大于號表示升序排列s=ai;ai=aj;aj=s;for (i=0 ; i<=4 ; i+)II重新定義循環(huán)輸岀數(shù)組中新排列的數(shù)printf( "%d-&qu
16、ot; ,ai);return 0;P0360.4求1至10啲總合. II bim mham aaB m ib t#i nclude <stdio.h>int main()int i , sum=0 ;/這是一個(gè)簡單的程序.for (i=0 ; i<101 ; i+),sum);sum=sum+i;pri ntf( "The sum of one to one hun dred is %d !n" return 0;P0360.5 n |3| IM I判斷一個(gè)數(shù)能否同時(shí)被3和5整除.#in clude <stdio.h> int main()i
17、nt n ;pri ntf("Please in put a n umber :n");scanf( "%d",&n);if (n%3=0&&n%5=0)/關(guān)鍵句,用"并"的符號.printf ( "Can be devide by 3 and 5 !n");elseprintf ( "Can not be devide by 3 and 5 !n");return 0;P0360.6 輸出100-200可的素?cái)?shù).mi IM I Mil I I :? MUM! I 吠*第
18、一種方法#include <stdio.h> / 網(wǎng)絡(luò)版本 , 采用調(diào)用函數(shù)和求根取素 .#include <math.h> / 下面用到 sqrt, 所以需要包含數(shù)據(jù)函數(shù) .sqrt 是求根 , 屬數(shù)學(xué)函數(shù)int main()/ 學(xué)會(huì)一個(gè)程序采用主函數(shù) +被調(diào)用函數(shù) 的方式 , 會(huì)比擬標(biāo)準(zhǔn) .inti;for(i=100; i<=200; i+)returnif (prime_number(i) = 1) printf( "%d " ,i);0;/ 為了書寫標(biāo)準(zhǔn) , 最好加上 , 以示清范圍 . /i 是實(shí)參 .int prime_numbe
19、r( double m) /m 是形參 .int j,k;k=( int )sqrt(m); / 求根 ,(int) 是強(qiáng)制轉(zhuǎn)換 , 求根里要是浮點(diǎn)型 for (j=2;j<=k;j+)if (m%j=0)return 0; / 此值返回給主函數(shù)中的實(shí)參 .return 1;第二種方法/ 指定至間 ./這里i為實(shí)參,傳入形參j中進(jìn)行運(yùn)算,然后再由形參j帶岀返回/*#include <stdio.h>#include <math.h>int main()int i;for (i=100;i<=200;i+)if (prime(i)=1)printf ( &qu
20、ot;%d is the prime number !n",i);return 0;int prime( int j) /j 是形參 , 用于接收實(shí)參 i 給的值 .int m, n;m=(int )sqrt(j);for (n=2;n<=m;n+)if (j%n=0)return0;/返回值,0為不是素?cái)?shù),1是素?cái)?shù). return 1;第二種方法* 請仿照來寫.P0360.7最大公約數(shù)和最小公倍數(shù)#in clude<stdio.h>/最大公約數(shù)用累除法,除到無余數(shù)時(shí)的被除數(shù)是最大公約數(shù)main ()intm, n, c, d;intgcd();/這是最大公約數(shù)的縮
21、寫,此處調(diào)用函數(shù),可以不寫里面的實(shí)參intlcm();/這是最小公倍數(shù)的縮寫,此處調(diào)用函數(shù),可以不寫里面的實(shí)參pr intf("Please in put two n umber :n");seanf( "%d %d",&m,&n);c=gcd(m, n);/e獲取最大公約數(shù)d=lem(m,n);/d獲取最小公倍數(shù)printf("The GCD of %d and %d is : %d !n", m, n, c);printf("The LCM of %d and %d is : %d !n", m
22、, n, d);return 0;int gcd( int x, int y) / 最大公約數(shù) Greatest Common Divisorint temp;while (x%y!=0)temp=y; /y在下一輪中作為除數(shù),即是下一輪中的X,所以先閃一邊去. y=x%y; /x,y的余數(shù)作為下一輪中的Y,由x%y來取得.x=temp; /剛剛temp中存儲(chǔ)了 y的值,現(xiàn)在拿岀來作為下一輪中的X使用.return y; /這是每一輪中的被除數(shù),按原理來,這就是最大公約數(shù),即累除法的原理int lcm( int x, int y) / 最小公倍數(shù) Lowest Com mon Multiple
23、int i, temp;if (x<y)/保證二者大的數(shù)在X上,小的數(shù)在Y上 .小于號降序,大于號升序./以下為經(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ù),直到取模無余數(shù),那么小的數(shù)X乘以區(qū)間當(dāng)前的I值,就是最小公倍數(shù)return x*i;最簡單的C程序設(shè)計(jì)一一順序程序設(shè)計(jì)P0373.1把華氏溫度轉(zhuǎn)化為攝氏表示法#in elude <stdio.h>float F_to_C( float inp
24、ut_fah) / 代表華轉(zhuǎn)攝,input_fah是局部變量.float output_een;/這里也是局部變量.output_een=(5.0/9)*(input_fah-32);/ 函數(shù)的功能體.return output_een;/返回值,注意,返回值的數(shù)據(jù)類型應(yīng)該和函數(shù)一致float C_to_F( float input_een)float output_fah;output_fah=(9.0/5)*input_cen+32;/ 轉(zhuǎn)換過程.return output_fah;int main()int ehoiee;floatinput_fah,input_cen,output_f
25、ah,output_cen;/ 局部變量的調(diào)用及參數(shù)傳遞pri ntf("F_to_C press <1> and C_to_F press <2> !n");seanf( "%d",&ehoiee);if (ehoiee=1)printf( "Please in put fahre nheit :");seanf( "%f",&input_fah);/這個(gè)是主函數(shù)定義的變量,雖然和調(diào)用函數(shù)同名.output_ee n=F _to_C(i nput_fah);printf(
26、"The 華氏 is %d , 攝氏 is %d .",( int )input_fah,(int )output_een);if (ehoiee=2)printf( "Please in put cen tigrade :");seanf( "%f,&input_cen); output_fah=C_to_F(i nput_ce n);printf( "The Centigrade is %d , and the Fahrenheit is%d ." ,( int )input_cen,(int )output_f
27、ah);return 0;P0383.2計(jì)算存款利息(關(guān)于精度問題). I I I 【I ll I ! «! I ! I I1HI ! #in clude <stdio.h> int main()float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3; p1=p0*(1+r1);p2=p0*(1+ ;p3=p0*(1+r3/2)*(1+r3/2);printf("p1=%fnp2=%fnp3=%fn",p1,p2,p3);return 0;P0553.3大寫轉(zhuǎn)換成小寫 ll I Hill ! I I I
28、 ll I KB I ! I :#in clude <stdio.h>int main()/小寫范圍是97-122,大寫范圍是65-90,大寫加上即得小寫.26個(gè)字母.char c1, c2;c1 = 'A'c2=c1+32;printf( "%c %d",c2,c2);return 0;P0593.4 I Mil I ! «! I給出三角形邊長,算出面積#in clude <stdio.h>#in clude<math.h>int main()double a=3.67, b=5.43, c=6.21, s,
29、area;s=(a+b+c)/2;area=sqrt(s*(s_a)*(s_b)*(s_c);printf( "area is %fn" ,area); / 默認(rèn)可以組成三角形 return 0;P0653.5求一無二次等式的根,默認(rèn)兩個(gè)不同根 II m it m Mtam » ti B n : hib bi #i nclude<stdio.h>#in clude<math.h> int main()double a,b,c,disc,x1,x2,p,q;scanf( "%lf %lf %lf",&a,&
30、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;pri ntf("x1=%7.2fnx2=%7.2f,x1,x2);return 0;P0713.6用ft出實(shí)數(shù),只能得到六位小數(shù). I “ I Il I 【I ll:I I I I I I I HMIHIIH#i nclude<stdio.h>#in clude<math.h> int main()double a=1.0;/1是整型是浮點(diǎn)型,默認(rèn)是double.可以是float.pri ntf("%.9
31、fn" ,a/3);return 0;P0723.7floa型數(shù)據(jù)的有效位數(shù)#i nclude<stdio.h>#in elude<math.h> int main()float a; /輸岀的結(jié)果是.333252,float 精度6位,所以第七位后不可信 a=10000/3.0;printf( "%fn" ,a);return 0;P0783.8使用putcha函數(shù)輸出 I IMIHHHI ! I I I II I II I ! I !#i nclude<stdio.h>#in clude<math.h> int
32、main()char a= B ,b= 'O' ,c= 'Y'putchar(a);putchar(b);putchar(c);putchar( 'n');putchar(101); /101是A的ASCII代碼的縮寫,因?yàn)榇撕瘮?shù)只能輸岀字符 putchar(66);return 0;P0793.9 使用getch得到字符. 11 ti » ibo n ii n an u #i nclude<stdio.h>#in clude<math.h> int main()char a,b,c;a=getchar();b=
33、getchar();c=getchar();putchar(a);putchar(b);putchar(c); /這也是根本回顯的C程序代碼putchar( 'n');return 0;P0813.10getch得到大寫,putcha輸出小寫. I I I dm i : i i I i« i “I丨 “ i in#i nclude <stdio.h>#in clude <math.h> int main()char a,b; a=getchar();b=a+32; putchar(b);putchar( 'n'); return
34、 0;P0820.1國民生產(chǎn)總值1(年后的增長倍數(shù) I “I 1 I I « I I#i nclude<stdio.h>#in clude<math.h> int main()double p,r=0.09,n=10;p=pow(1+r),n);/這是數(shù)學(xué)函數(shù),pow(x,y) 計(jì)算x的y次方.pri ntf("P is %lf whe n 10 years later .n",p);return 0;/結(jié)果是倍.P0820.2求各種存款的利息數(shù)mi IM I Mil I I :? MUM! I #in clude <stdio.h&
35、gt;#in elude<math.h>intmai n()double p,r,n;/年份和當(dāng)年利率均有給岀.p=1000*(1+5*0.0585);printf( "5 years is %lf !n",p);/1292.5,p=(1000*(1+2*0.0468); p=(p*(1+3*0.0540);printf( "5 years is %lf !n",p);/1270.76,p=(1000*(1+3*0.0540); p=(p*(1+2*0.0468);printf( "5 years is %lf !n",p
36、);/1270.76,p=1000*pow(1+0.0414),5); printf( "5 years is %lf !n",p);/1224.86,p=1000*pow(1+0.072/4),4*5); printf( "5 years is %lf !n",p);/1428.74.return 0;這是先二年,再三年的.這是全五年期f輸岀的是double型.這是先三年,再二年的.證明,是一樣的.這難道說是,相對的存死期越久越值錢P0830.3求幾個(gè)月要以還貸#i nclude<stdio.h>#in clude<math.h>
37、; int main()double m,r=0.01,d=300000,p=6000;m=(log10(p/(p-d*r)/(log10(1+r);printf( "%.1lf" ,m);/按要求只留一個(gè)小數(shù),所以要寫.1lf.return 0;P0840.6 字母密碼轉(zhuǎn)換,調(diào)用函數(shù)及臨界處理 I ! I I I 【I I I I I I i I 11 “ m II I #in clude <stdio.h>char printcode(char f)if ( int )f>86&&( int )f<91)|( int )f>
38、118&&( int )f<123)return (f-26+4);調(diào)用需要返回值./因?yàn)閜utchar會(huì)自動(dòng)返回,所以改成return,因?yàn)檫@是在函數(shù)中elsereturn (f+4); int main()char a,b,c,d,e;pri ntf("Please in put :n");a=getchar();b=getchar();c=getchar();d=getchar();e=getchar(); 臨界問題.pri ntf("%c%c%c%c%c5ri ntcode(a),pr in tcode(b),pri ntcode(c
39、),pri ntcode(d),pri ntcode(e);putchar(putcharcode(a);putchar(putcharcode(b);putchar(putcharcode(c);putchar(putcharcode(d);putchar(putcharcode(e);return 0;/注意理解自定義函數(shù)的定義,使用,及形參實(shí)參的流向.p84的是計(jì)算問題,自己看著辦,最后要求小數(shù)點(diǎn)后兩位,用的是%.2lf來實(shí)現(xiàn),因?yàn)闆]有 要求實(shí)部,所以格式中m不寫.p84的是定義問題,第一問,兩者都行,但是定義字母時(shí),scanf要寫(來獲取,而定義數(shù)值 時(shí)那么要用(來獲取./第二問,pu
40、tchar貌似只能輸岀字符,所以用本身就是字符輸岀函數(shù)啦字符,有木有!字符啊!盡管它的參數(shù)可以是putchar('101'),效果是輸岀字符 A阿./第三問,岀現(xiàn)“任何“及“無條件",那么答案明顯是"否".可以轉(zhuǎn)換,但要在某此條件下,例如輸岀和讀入時(shí),c是字母,而(是數(shù)值,看著辦.選擇結(jié)構(gòu)程序設(shè)計(jì)P0864.1一無二次方程求根的二分支 I 1 IMIHI I 【 I I : II I 1 I II II I #i nclude <stdio.h>#in clude <math.h>int main()double a,b,c
41、,disc,x1,x2,p,q;seanf( "%lf %lf %lf" ,&a,&b,&c); disc=b*b-4*a*c;if (disc<0) /這是選擇結(jié)構(gòu)和其判斷條件的例如 . printf( "This equati on has n't real roots' n");elsep=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf( "x1=%7.2fnx2=%7.2f",x1,x2);return 0;P0874.2二
42、個(gè)數(shù)按大小輸出 I I I IHHaMI ll I 11 I ! MaMaHIHIIH#in clude <stdio.h> int main() /此程序代表按大小順序輸岀 .float a,b,t;.比方有個(gè)逗號scanf( "%f %f" ,&a,&b);/岀錯(cuò)時(shí),注意檢查這里是否按格式輸入了if (a>b)t=a;a=b;b=t;printf( "%5.2f,%5.2fn",a,b);return 0;P0884.3三個(gè)數(shù)按大小輸出 I I II IHHaMIHIHIHHHIMaHIBIl 皿#i nclude
43、<stdio.h>int main() /此程序代表按大小順序輸岀float a,b,c,t;seanf( "%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;pri ntf("%5.2f,%5.2f%5.2fn",a,b,c);return 0;P0994.4判斷輸入字符,并最終
44、按小寫輸出I Ii ! i imtbmbimi "#in elude <stdio.h> int main()char ch;scanf( "%c",&ch);ch=(ch>= 'A' &&chv=Z' )?(ch+32):ch;/ 條件運(yùn)算符,真取前,假取后.printf( "%cn" ,ch);return 0;P1004.5按要求輸出相應(yīng)的丫值. I l IMIHI I I I I I I I I III#in clude <stdio.h>int main()
45、 int x,y;seanf( "%d",&x);if (x>=0)if (x>0)/這個(gè)范圍要基于x>=0來判斷y=i;elsey=0;else /這個(gè)是x<0的范圍.y=-i;printf( "x=%d,y=%d" ,x,y);return 0;P1024.6switc的簡單應(yīng)用. I Iii w n i i : ii i ! ! i « mi ii#in clude <stdio.h> int main()char grade;scanf( "%c",&grade);
46、pri ntf("Your score:");switch(grade)case 'a':pri ntf("85-100n");break ;/當(dāng)多分支結(jié)構(gòu)過于多時(shí)case 'b':pri ntf("70-84n");break ;case 'c':pri ntf("60-69n");break ;case'd':pri ntf("<60n");break ;default:pri ntf("En ter data
47、error!n"); return0;,可以用switch來解決.P1044.7按輸入執(zhí)行操作,并且不分大小寫 I “ IMIHHHI II I 【I ll I ! I I I I 1 I I I I I I #in elude <stdio.h>void action1(int x, int y)printf("x+y=%dn" ,x+y);void action2(int x, int y)printf( "x*y=%dn" ,x*y); int main()char ch;int a=15,b=23;ch=getchar();
48、switch (ch)case 'a':case'A' :action1(a,b);break ;a,A 共用一個(gè)執(zhí)行語句case 'b':case 'B' :action2(a,b);break ;default :putchar( 'a' );'a'可以控制電腦發(fā)岀蜂鳴聲r(shí)eturn 0;P1064.8 用if的分支來做閏年問題 I U I ! N I:Ml H I = 11 I I I I I I #in clude <stdio.h>int year,leap;pri ntf(&
49、quot;Please in put the year: 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,22
50、00 類的,當(dāng)然屬閏年elseleap=0;if (leap)printf( "%d is " ,year);elseprintf( "%d is n ot ",year);printf("a leap year !");/不管上面如何判斷,最后還是會(huì)輸岀這一句return 0;P1084.9一元二次等式的全計(jì)算過程. I I : I I:Ml N I : I I I I IM II ll #i nclude<stdio.h>#in clude<math.h>int main()double a,b,c,dis
51、c,x1,x2,realpart,imagpart;scanf( "%lf %lf %lf",&a,&b,&c);pr in tf("The equati on ");if (fabs(a)v=1e-6) /fabs是絕對值,le-6,即是的負(fù)六次方,接近或是等于零printf( "is not a quadratic !n");printf( "x1=x2=%lf ,-c/b);elsedisc=b*b-4*a*c;if (fabs(disc)<=1e-6)/ 指數(shù)形式,數(shù)字 1.pri ntf("has two equal roots : %lfn",-b/(2*a);elseif (disc>1e-6)x仁(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf( "has dist in ct real roots : %lf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紡織品行業(yè)創(chuàng)新創(chuàng)業(yè)指導(dǎo)考核試卷
- 船舶改裝工程技術(shù)規(guī)范與標(biāo)準(zhǔn)更新解讀考核試卷
- 報(bào)紙的突發(fā)事件報(bào)道考核試卷
- 新能源汽車維護(hù)與故障診斷(微課版)教案 4.4.1空調(diào)不制冷故障診斷與排除;4.4.2空調(diào)不制熱故障的診斷與排除
- 稀土金屬壓延加工過程中的監(jiān)控與檢測手段考核試卷
- 羊飼養(yǎng)的可持續(xù)發(fā)展模式探索考核試卷
- 航標(biāo)用電纜與連接器制造考核試卷
- 煤氣化技術(shù)的能源供需平衡研究考核試卷
- 珠海三中高一下學(xué)期期中考試語文試題
- 昆明幼兒師范高等??茖W(xué)?!栋踩c健康教育》2023-2024學(xué)年第二學(xué)期期末試卷
- 快遞驛站承包協(xié)議書
- 地坪漆專項(xiàng)施工方案及流程
- 2024年北京海淀區(qū)高三二模語文試題和答案
- 銻礦濕法冶金新技術(shù)
- 2024年輔警招聘考試試題庫含完整答案(各地真題)
- 手術(shù)室團(tuán)隊(duì)協(xié)作
- 航天禁(限)用工藝目錄(2021版)-發(fā)文稿(公開)
- 湖北省武漢市2024屆高中畢業(yè)生四月調(diào)研考試數(shù)學(xué)試卷
- MOOC 機(jī)械設(shè)計(jì)基礎(chǔ)-西安交通大學(xué) 中國大學(xué)慕課答案
- 煙草原料知識(shí)培訓(xùn)課件
- 糖尿病低血糖診治
評論
0/150
提交評論