《C語言程序設計》課后習題答案(第四版)譚浩強_第1頁
《C語言程序設計》課后習題答案(第四版)譚浩強_第2頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、26第 1章程序設計和 C語言 1261.1 什么是計算機程序 11.2 什么是計算機語言 11.3C語言的發展及其特點 31.4 最簡單的 C語言程序 51.4.1 最簡單的 C語言程序舉例 61.4.2C 語言程序的結構 101.5 運行 C程序的步驟與方法 121.6 程序設計的任務 141-5#include int main( ) printf (*nn);printf( Very Good!nn);printf (*n);return 0;1-6#include int main()int a,b,c,max;printf(please input a,b,c:n);scanf(%

2、d,%d,%d,&a,&b,&c);max=a;if (maxb)max=b;if (maxc)max=c;printf(The largestnumberis %dn,max);return 0;第 2 章算法程序的靈魂 162.1 什么是算法 162.2 簡單的算法舉例 172.3 算法的特性 212.4 怎樣表示一個算法 222.4.1 用自然語言表示算法 222.4.2 用流程圖表示算法 222.4.3 三種基本結構和改進的流程圖2.4.4 用 N S流程圖表示算法 282.4.5 用偽代碼表示算法 312.4.6 用計算機語言表示算法 32342.5 結構化程序設計方法34習題 36

3、第章最簡單的 C程序設計 順序程序設計 373.1 順序程序設計舉例 373.2 數據的表現形式及其運算 393.2.1 常量和變量 393.2.2 數據類型 423.2.3 整型數據 443.2.4 字符型數據 473.2.5 浮點型數據 493.2.6 怎樣確定常量的類型 513.2.7 運算符和表達式 523.3C 語句 573.3.1C 語句的作用和分類 573.3.2 最基本的語句 賦值語句 593.4 數據的輸入輸出 653.4.1 輸入輸出舉例 653.4.2 有關數據輸入輸出的概念 673.4.3 用 printf 函數輸出數據 683.4.4 用 scanf 函數輸入數據 7

4、53.4.5 字符數據的輸入輸出 78習題 823-1 #include #include int main()float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%fn,p);return 0;3-2-1#include #include int main()float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;/ 一次/ 一次存 5年期/ 先存 2年期,到期后將本息再存 3年期/ 先存 3年期,到期后將本息再存 2年期/ 存 1年期,到期后將本息存再存 1年期,連續存 5次/ 存活期存款。活期利息每一季度結算一次/

5、輸出按第 1方案得到的本息和/ 輸出按第 2方案得到的本息和/ 輸出按第 3方案得到的本息和/ 輸出按第 4方案得到的本息和/ 輸出按第 5方案得到的本息和/ 一次存 5年期/ 先存 2年期,到期后將本息再存 3年期/ 先存 3年期,到期后將本息再存 2年期/ 存 1年期,到期后將本息存再存 1年期,連續存 5次/ 存活期存款。活期利息每一季度結算一次/ 輸出按第 1方案得到的本息和/ 輸出按第 2方案得到的本息和/ 輸出按第 3方案得到的本息和/ 輸出按第 4方案得到的本息和/ 輸出按第 5方案得到的本息和r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p

6、*(1+r5)*5);p2=p*(1+2*r2)*(1+3*r3);p3=p*(1+3*r3)*(1+2*r2);p4=p*pow(1+r1,5);p5=p*pow(1+r0/4,4*5);printf(p1=%fn,p1);printf(p2=%fn,p2);printf(p3=%fn,p3);printf(p4=%fn,p4);printf(p5=%fn,p5);return 0;3-2-2#include #include int main()double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.046

7、8;r1=0.0414;r0=0.0072;p1=p*(1+r5)*5);p2=p*(1+2*r2)*(1+3*r3);p3=p*(1+3*r3)*(1+2*r2);p4=p*pow(1+r1,5);p5=p*pow(1+r0/4,4*5);printf(p1=%fn,p1);printf(p2=%fn,p2);printf(p3=%fn,p3);printf(p4=%fn,p4);printf(p5=%fn,p5);return 0;3-2-3/ 一次存 / 一次存 5年期/ 先存 2年期,到期后將本息再存 3年期/ 先存 3年期,到期后將本息再存 2年期/ 存 1年期,到期后將本息存再存

8、1年期,連續存 5次/ 存活期存款。活期利息每一季度結算一次/ 輸出按第 1方案得到的本息和/ 輸出按第 2方案得到的本息和/ 輸出按第 3方案得到的本息和/ 輸出按第 4方案得到的本息和/ 輸出按第 5方案得到的本息和#include int main()float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*(1+r5)*5);p2=p*(1+2*r2)*(1+3*r3);p3=p*(1+3*r3)*(1+2*r2);p4=p*pow(1+r1,5)

9、;p5=p*pow(1+r0/4,4*5);printf(p1=%10.2fn,p1);printf(p2=%10.2fn,p2);printf(p3=%10.2fn,p3);printf(p4=%10.2fn,p4);printf(p5=%10.2fn,p5);return 0;3-3.#include #include int main()float d=300000,p=6000,r=0.01,m;m=log10(p/(p-d*r)/log10(1+r);printf(m=%6.2fn,m);return 0;3-4#include int main()int c1,c2;r,圓柱高 h

10、);/要求輸入圓半徑r,圓柱高 h);/要求輸入圓半徑/計算圓周長 lr和圓柱高 hc2=198;printf(c1=%c,c2=%cn,c1,c2);printf(c1=%d ,c2=%dn,c1,c2);return 0;3-5#include int main()int a,b;float x,y;charc1,c2;scanf(a=%d b=%d,&a,&b);scanf(%f %e,&x,&y);scanf(%c%c,&c1,&c2);printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn,a,b,x,y,c1,c2);return 0;3-6#include

11、 int main()char c1=C,c2=h,c3=i,c4=n,c5=a;c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(passwor is %c%c%c%c%cn,c1,c2,c3,c4,c5);return 0;3-7#include int main()float h,r,l,s,sq,vq,vz;float pi=3.141526;printf( 請輸入圓半徑scanf(%f,%f,&r,&h);l=2*pi*r;/計算圓面積 s/計算圓球表面積/計算圓球體積/計算圓面積 s/計算圓球表面積/計算圓球體積 vq/計算圓柱體積 vz

12、l=%6.2fn,l);s=%6.2fn,s);sq=%6.2fn,sq);v=%6.2fn,vq);vz=%6.2fn,vz);/整型定義/定義字符型變量/定義整型變量/賦值給整型變量sqsq=4*pi*r*r;vq=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;printf( 圓周長為 :printf( 圓面積為 :printf( 圓球表面積為 :printf( 圓球體積為 :printf( 圓柱體積為 :return 0;3-8-1#include int main()int c1,c2;printf( 請輸入兩個整數 c1,c2:);scanf(%d,%d,&c1,&c2)

13、;printf( 按字符輸出結果 :n);printf(%c,%cn,c1,c2);printf( 按 ASCII 碼輸出結果為 :n);printf(%d,%dn,c1,c2);return 0;3-8-2#include int main()charc1,c2;int i1,i2;printf( 請輸入兩個字符 c1,c2:);scanf(%c,%c,&c1,&c2);i1=c1;i2=c2;printf( 按字符輸出結果 :n);printf(%c,%cn,i1,i2);printf( 按整數輸出結果 :n);printf(%d,%dn,c1,c2);return 0;3-8-3/定義為

14、字符型/定義為整型/將整數賦值給字符變量8587#include /定義為字符型/定義為整型/將整數賦值給字符變量8587int main()charc1,c2;int i1,i2;printf( 請輸入兩個整數 i1,i2:);scanf(%d,%d,&i1,&i2);c1=i1;c2=i2;printf( 按字符輸出結果 :n);printf(%c,%cn,c1,c2);printf( 按整數輸出結果 :n);printf(%d,%dn,c1,c2);return 0;3-8#include int main()charc1,c2;printf( 請輸入兩個字符 c1,c2:);c1=ge

15、tchar();c2=getchar();printf( 用 putchar語句輸出結果為 :);putchar(c1);putchar(c2);printf(n);printf( 用 printf 語句輸出結果為 :);printf(%c %cn,c1,c2);return0;第 4 章選擇結構程序設計4.1 選擇結構和條件判斷 854.2 用 if語句實現選擇結構 874.2.1 用 if 語句處理選擇結構舉例4.2.2if 語句的一般形式 894.3 關系運算符和關系表達式 914.3.1 關系運算符及其優先次序 914.3.2 關系表達式 924.4 邏輯運算符和邏輯表達式 924.4

16、.1 邏輯運算符及其優先次序 93102/*將 a和 b中的大者存入 102/*將 a和 b中的大者存入 temp中*/*將a和 b中的大者與 c比較,取最大者 */%dn,max);4.4.3 邏輯型變量 964.5 條件運算符和條件表達式 974.6 選擇結構的嵌套 994.7 用 switch 語句實現多分支選擇結構4.8 選擇結構程序綜合舉例 105習題 1114-4-1#include int main()int a,b,c;printf( 請輸入三個整數 :);scanf(%d,%d,%d,&a,&b,&c);if (ab)if (bc)printf(max=%dn,c);else

17、printf(max=%dn,b);elseif (ac)printf(max=%dn,c);elseprintf(max=%dn,a);return 0;4-4-2#include int main() int a,b,c,temp,max;printf( 請輸入三個整數 :);scanf(%d,%d,%d,&a,&b,&c);temp=(ab)?a:b;max=(tempc)?temp:c;printf( 三個整數的最大數是return 0;4-5-2#include #include #define M 1000int main()%d 的整數 i:,M);%d 的整數 i:,M);%d

18、 的整數 i:,M);/* x1 */y=x=%dn ,x,y);/* 1=xM)printf( 輸入的數不符合要求,請重新輸入一個小于scanf(%d,&i);k=sqrt(i);printf(%d 的平方根的整數部分是: %dn,i,k);return 0;4-5#include #include #define M 1000int main()int i,k;printf( 請輸入一個小于 %d 的整數 i:,M);scanf(%d,&i);if (iM)printf( 輸入的數不符合要求,請重新輸入一個小于scanf(%d,&i);k=sqrt(i);printf(%d 的平方根的整數

19、部分是: %dn,i,k);return 0;4-6.#include int main() int x,y;printf( 輸入 x:);scanf(%d,&x);if(x1) y=x;printf(x=%3d,else if(x=10y=3*x-11=%dn,x,y);*/y=2*x-1=%dn,x,y);/* x=10y=3*x-11=%dn,x,y);*/printf(x=%d,else y=3*x-11;printf(x=%d,return 0;4-7-1#include int main()int x,y;printf(enter x:);scanf(%d,&x);y=-1;if(

20、x!=0)if(x0)y=1;elsey=0;printf(x=%d,y=%dn,x,y);return 0;4-7-2#include int main()int x,y;printf(please enterx:);scanf(%d,&x);y=0;if(x=0)if(x0) y=1;else y=-1;printf(x=%d,y=%dn,x,y);return 0;/分別代表個位 /分別代表個位 ,十位 ,百位,千#include int main() float score;chargrade;printf( 請輸入學生成績 :);scanf(%f,&score);while (sco

21、re100|score0)printf(n 輸入有誤 ,請重輸);scanf(%f,&score);switch(int)(score/10)case10:case9:grade=A;break;case8:grade=B;break;case7:grade=C;break;case6:grade=D;break;case5:case4:case3:case2:case1:case0:grade=E;printf( 成績是 %5.1f,相應的等級是 %cn ,score,grade);return0;4-9#include #include int main()int num,indiv,te

22、n,hundred,thousand,ten_thousand,place;位,萬位和位數printf( 請輸入一個整數 (0-99999):);scanf(%d,&num);if (num9999)place=5;else if (num999)place=4;else if (num99)place=3;else if (num9)place=2;elseplace=1;printf( 位數:%dn,place);printf( 每位數字為 :);ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1000;hundr

23、ed=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);switch(place)case5:printf(%d,%d,%d,%d,%d,ten_thousand,thousand,hundred,ten,indiv);printf(n 反序數字為 :);printf(%d%d%d%d%d

24、n,indiv,ten,hundred,thousand,ten_thousand);break;case4:printf(%d,%d,%d,%d,thousand,hundred,ten,indiv);printf(n 反序數字為 :);printf(%d%d%d%dn,indiv,ten,hundred,thousand);break;case3:printf(%d,%d,%d,hundred,ten,indiv);printf(n 反序數字為 :);printf(%d%d%dn,indiv,ten,hundred);break;case2:printf(%d,%d,ten,indiv);

25、printf(n 反序數字為 :);printf(%d%dn,indiv,ten);break;case1:printf(%d,indiv);printf(n 反序數字為 :);printf(%dn,indiv);break;return 0;4-10-1#include int main()int i;double bonus,bon1,bon2,bon4,bon6,bon10;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+100000*0.05;bon6=bon4+100000*0.03;bon10=bon6+400000*0.015;p

26、rintf( 請輸入利潤 i:);scanf(%d,&i);if (i=100000)bonus=i*0.1;elseif (i=200000)bonus=bon1+(i-100000)*0.075;elseif (i=400000)bonus=bon2+(i-200000)*0.05;elseif (i=600000)bonus=bon4+(i-400000)*0.03;elseif (i=1000000)bonus=bon6+(i-600000)*0.015;elsebonus=bon10+(i-1000000)*0.01;printf( 獎金是:%10.2fn,bonus);return

27、 0;4-10-2#include int main()int i;double bonus,bon1,bon2,bon4,bon6,bon10;int branch;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf( 請輸入利潤 i:);scanf(%d,&i);branch=i/100000;if (branch10) branch=10;switch(branch) case0:bonus=i*0.1;break

28、;case1:bonus=bon1+(i-100000)*0.075;break;case2:case3: bonus=bon2+(i-200000)*0.05;break;case4:case5: bonus=bon4+(i-400000)*0.03;break;case6:case7:case8:case9: bonus=bon6+(i-600000)*0.015;break;case10: bonus=bon10+(i-1000000)*0.01;printf( 獎金是 %10.2fn,bonus);return 0;4-11#include int main()int t,a,b,c,

29、d;printf( 請輸入四個數 :);scanf(%d,%d,%d,%d,&a,&b,&c,&d);printf(a=%d,b=%d,c=%d,d=%dn,a,b,c,d);if (ab) t=a;a=b;b=t;if (ac) t=a;a=c;c=t;if (ad) t=a;a=d;d=t;if (bc) t=b;b=c;c=t;if (bd) t=b;b=d;d=t;if (cd) t=c;c=d;d=t;printf( 排序結果如下 :n);printf(%d %d %d %d n ,a,b,c,d);return 0;4-12#include int main()int h=10;f

30、loat x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;/*求該點到各中心點距離h=0;114*/*判斷該點是否在塔外*/printf( 請輸入一個點 (x,y):);/*求該點到各中心點距離h=0;114*/*判斷該點是否在塔外*/scanf(%f,%f,&x,&y);d1=(x-x4)*(x-x4)+(y-y4)*(y-y4);d2=(x-x1)*(x-x1)+(y-y1)*(y-y1);d3=(x-x2)*(x-x2)+(y-y2)*(y-y2);d4=(x-x3)*(x-x3)+(y-y3)*(y-y3);if

31、(d11 & d21& d31 & d41)printf( 該點高度為 %dn,h);return 0;第 5 章循環結構程序設計5.1 為什么需要循環控制 1145.2 用 while 語句實現循環 1155.3 用 do while語句實現循環 1175.4 用 for 語句實現循環 1205.5 循環的嵌套 1245.6 幾種循環的比較 1255.7 改變循環執行的狀態 1255.7.1 用 break 語句提前終止循環 1265.7.2 用 continue 語句提前結束本次循環 1275.7.3break 語句和 continue 語句的區別 1285.8 循環程序舉例 131習題

32、1405-2#include #include / 程序中用到數學函數 fabs,應包含頭文件 math.nint main()int sign=1,count=0; / sign 用來表示數值的符號 ,count 用來統計循環次數double pi=0.0,n=1.0,term=1.0; /pi 開始代表多項式的值, 最后代表的值 ,n代表分母,term代表當前項的值while(fabs(term)=1e-8) / 檢查當前項 term的絕對值是否大于或等于 10 的(-6)次方pi=pi+term; / 把當前項 term累加到 pi 中n=n+2; /n+2 是下一項的分母sign=-s

33、ign; / sign代表符號,下一項的符號與上一項符號相反term=sign/n; / 求出下一項的值 termcount+; / count 累加 1pi=pi*4; / 多項式的和 pi 乘以 4,才是的近似值printf(pi=%10.8fn,pi); / 輸出的近似值printf(count=%dn,count); / 輸出循環次數return 0;5-3#include int main()int p,r,n,m,temp;printf( 請輸入兩個正整數 n,m:);scanf(%d,%d,&n,&m);if (nm)temp=n;n=m;m=temp;p=n*m;while(m

34、!=0)r=n%m;n=m;m=r;printf( 它們的最大公約數為 :%dn,n);printf( 它們的最小公約數為 :%dn,p/n);return 0;5-4#include int main()charc;int letters=0,space=0,digit=0,other=0;printf( 請輸入一行字符 :n);while(c=getchar()!=n)if (c=a & c=A & c=0 & c=9)digit+;elseother+;printf( 字母數 :%dn 空格數:%dn 數字數 :%dn 其它字符數 :%dn,letters,space,digit,oth

35、er);return 0;5-5#include int main()int a,n,i=1,sn=0,tn=0;printf(a,n=:);scanf(%d,%d,&a,&n);while (i=n)tn=tn+a; /*賦值后的 tn為 i個 a組成數的值 */sn=sn+tn; /*賦值后的 sn為多項式前 i 項之和*/a=a*10;+i;printf(a+aa+aaa+.=%dn,sn);return 0;5-6#include int main()double s=0,t=1;int n;for (n=1;n=20;n+)t=t*n;s=s+t;printf(1!+2!+.+20!

36、=%22.15en,s);return 0;5-7#include int main()*/a*/int */a*/double k,s1=0,s2=0,s3=0;for (k=1;k=n1;k+) /*計算 1到100的和*/s1=s1+k;for (k=1;k=n2;k+) /*計算 1到50各數的平方和 */s2=s2+k*k;for (k=1;k=n3;k+) /*計算 1到10的各倒數和 */s3=s3+1/k;printf(sum=%15.6fn,s1+s2+s3);return 0;5-8#include int main()int i,j,k,n;printf(parcissu

37、s numbersare);for (n=100;n1000;n+)i=n/100;j=n/10-i*10;k=n%10;if (n=i*i*i + j*j*j +k*k*k)printf(%d ,n);printf(n);return 0;5-9-1#define M 1000 /*定義尋找范圍 */#include int main()int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;int i,a,n,s;for (a=2;a=M;a+) /* a是 2-1000 之間的整數,檢查它是否完數n=0; /* n用來累計 a的因子的個數 */s=a; /* s用來存放尚未

38、求出的因子之和,開始時等于for (i=1;i3表示至少有 4個因子,故應再輸出一個以下類似*/n+;printf(,%d,k4);/*/* n3表示至少有 4個因子,故應再輸出一個以下類似*/s=s-i; /* s減去已找到的因子, s的新值是尚未求出的因子之和 */switch(n) /* 將找到的因子賦給 k1.k9,或 k10*/case1:k1=i; break; /* 找出的笫 1個因子賦給 k1 */case2:k2=i; break; /* 找出的笫 2個因子賦給 k2 */case3:k3=i; break; /* 找出的笫 3個因子賦給 k3 */case4:k4=i; b

39、reak; /* 找出的笫 4個因子賦給 k4 */case5:k5=i; break; /* 找出的笫 5個因子賦給 k5 */case6:k6=i; break; /* 找出的笫 6個因子賦給 k6*/case7:k7=i; break; /* 找出的笫 7個因子賦給 k7 */case8:k8=i; break; /* 找出的笫 8個因子賦給 k8*/case9:k9=i; break; /*找出的笫 9個因子賦給 k9 */case10:k10=i; break; /* 找出的笫 10 個因子賦給 k10*/if (s=0)printf(%d ,Its factors are,a);i

40、f (n1) printf(%d,%d,k1,k2); /* n1表示 a至少有 2個因子 */if (n2) printf(,%d,k3); /* n2表示至少有 3個因子,故應再輸出一個因子 */if (n3)因子 */if (n4) printf(,%d,k5);if (n5) printf(,%d,k6);if (n6) printf(,%d,k7);if (n7) printf(,%d,k8);if (n8) printf(,%d,k9);if (n9) printf(,%d,k10);printf(n);return 0;5-9-2#include int main()int m,

41、s,i;for (m=2;m1000;m+)s=0;for (i=1;im;i+)if (m%i)=0) s=s+i;if(s=m)printf(%d,its factorsare,m);for (i=1;im;i+)if (m%i=0) printf(%d ,i);printf(n);return 0;5-10#include int main()int i,n=20;double a=2,b=1,s=0,t;for (i=1;i=n;i+)s=s+a/b;t=a,a=a+b,b=t;printf(sum=%16.10fn,s);return 0;5-11#include int main(

42、)double sn=100,hn=sn/2;int n;*/2天桃子數加 1后的*/2天桃子數加 1后的 2倍.*/is %8.5fn,a,x1);sn=sn+2*hn; /*第n次落地時共經過的米數hn=hn/2; /*第n次反跳高度 */printf( 第 10次落地時共經過 %f 米n,sn);printf( 第 10次反彈 %f 米n,hn);return 0;5-12#include int main()int day,x1,x2;day=9;x2=1;while(day0)x1=(x2+1)*2; /*第 1天的桃子數是第x2=x1;day-;printf(total=%dn,x

43、1);return 0;5-13#include #include int main()float a,x0,x1;printf(enter apositive number:);scanf(%f,&a);x0=a/2;x1=(x0+a/x0)/2;dox0=x1;x1=(x0+a/x0)/2;while(fabs(x0-x1)=1e-5);printf(The squareroot of %5.2freturn 0;5-14#include #include int main()double x1,x0,f,f1;x1=1.5;dox0=x1;f=(2*x0-4)*x0+3)*x0-6;f1

44、=(6*x0-8)*x0+3;x1=x0-f/f1;while(fabs(x1-x0)=1e-5);printf(The root of equation is%5.2fn,x1);return 0;5-15#include #include int main()float x0,x1,x2,fx0,fx1,fx2;doprintf(enter x1& x2:);scanf(%f,%f,&x1,&x2);fx1=x1*(2*x1-4)*x1+3)-6;fx2=x2*(2*x2-4)*x2+3)-6;while(fx1*fx20);dox0=(x1+x2)/2;fx0=x0*(2*x0-4)*x

45、0+3)-6;if (fx0*fx1)=1e-5);printf(x=%6.2fn,x0);return 0;1421421445-16142142144#include int main()int i,j,k;for (i=0;i=3;i+)for (j=0;j=2-i;j+)printf( );for (k=0;k=2*i;k+)printf(*);printf(n);for (i=0;i=2;i+)for (j=0;j=i;j+)printf( );for (k=0;k=4-2*i;k+)printf(*);printf(n);return 0;5-17#include int main

46、()chari,j,k; /*是a的對手 ;j 是 b的對手 ;k 是 c的對手 */for (i=x;i=z;i+)for (j=x;j=z;j+)if (i!=j)for (k=x;k=z;k+)if (i!=k & j!=k)if (i!=x & k!=x & k!=z)printf(A-%cnB-%cnC-%cn,i,j,k);return 0;第 6 章利用數組處理批量數據6.1 怎樣定義和引用一維數組6.1.1 怎樣定義一維數組 1436.1.2 怎樣引用一維數組元素6.1.3 一維數組的初始化 1456.1.4 一維數組程序舉例 1466.2 怎樣定義和引用二維數組 1486.2

47、.1 怎樣定義二維數組 1496.2.2 怎樣引用二維數組的元素 1506.2.3 二維數組的初始化 1516.2.4 二維數組程序舉例 1526.3 字符數組 1546.3.1 怎樣定義字符數組 1546.3.2 字符數組的初始化 1556.3.3 怎樣引用字符數組中的元素 1556.3.4 字符串和字符串結束標志 1566.3.5 字符數組的輸入輸出 1596.3.6 使用字符串處理函數 1616.3.7 字符數組應用舉例 165習題 1686-1#include #include int main()int i,j,n,a101;for (i=1;i=100;i+)ai=i;a1=0;f

48、or (i=2;isqrt(100);i+)for (j=i+1;j=100;j+)if(ai!=0 & aj!=0)if (aj%ai=0)aj=0;printf(n);for (i=2,n=0;i=100;i+) if(ai!=0)printf(%5d,ai);n+;if(n=10)printf(n);n=0;printf(n);return 0;6-2#include int main()int i,j,min,temp,a11;printf(enter data:n);for (i=1;i=10;i+)printf(a%d=,i);scanf(%d,&ai);printf(n);pri

49、ntf(The orginal numbers:n);for (i=1;i=10;i+)printf(%5d,ai);printf(n);for (i=1;i=9;i+)min=i;for (j=i+1;jaj) min=j;temp=ai;ai=amin;amin=temp;printf(nThe sortednumbers:n);for (i=1;i=10;i+)printf(%5d,ai);printf(n);return 0;6-3#include int main()int a33,sum=0;int i,j;printf(enter data:n);for (i=0;i3;i+)f

50、or (j=0;j3;j+)scanf(%3d,&aij);for (i=0;i3;i+)sum=sum+aii;printf(sum=%6dn,sum);return 0;6-4#include int main() int a11=1,4,6,9,13,16,19,28,40,100;int temp1,temp2,number,end,i,j;printf(array a:n);for (i=0;iend)a10=number;elsefor (i=0;inumber)temp1=ai;ai=number;for (j=i+1;j11;j+)temp2=aj;aj=temp1;temp1

51、=temp2;break;printf(Now arraya:n);for (i=0;i11;i+)printf(%5d,ai);printf(n);return 0;6-5#include #define N 5int main() int aN,i,temp;printf(enter array a:n);/循環的作用是將對稱的元素的值互換for (i=0;iN;i+)/循環的作用是將對稱的元素的值互換scanf(%d,&ai);printf(array a:n);for (i=0;iN;i+)printf(%4d,ai);for (i=0;iN/2;i+) temp=ai;ai=aN-i

52、-1;aN-i-1=temp;printf(nNow,array a:n);for (i=0;iN;i+)printf(%4d,ai);printf(n);return 0;6-6#include #define N 10int main() int i,j,aNN;for (i=0;iN;i+)aii=1;ai0=1;for (i=2;iN;i+)for (j=1;j=i-1;j+)aij=ai-1j-1+ai-1j;for (i=0;iN;i+)for (j=0;j=i;j+)printf(%6d,aij);printf(n);printf(n);return 0;6-7#include

53、int main() int a1515,i,j,k,p,n;p=1;while(p=1)printf(enter n(n=1-15):);scanf(%d,&n);if (n!=0) & (n=15) & (n%2!=0)p=0;for (i=1;i=n;i+)for (j=1;j=n;j+)aij=0;j=n/2+1;a1j=1;for (k=2;k=n*n;k+)i=i-1;j=j+1;if (in)i=i+2;j=j-1;elseif (in) j=1;if (aij=0)aij=k;elsei=i+2;j=j-1;aij=k;for (i=1;i=n;i+)for (j=1;j=n;

54、j+)printf(%5d,aij);printf(n);return 0;6-8#include #define N 4flag1 為 0*/*/#define M 5 /* 數組為 4flag1 為 0*/*/int main()int i,j,k,aNM,max,maxj,flag;printf(please input matrix:n);for (i=0;iN;i+) /* 輸入數組 */for (j=0;jM;j+)scanf(%d,&aij);for (i=0;iN;i+)max=ai0; /* 開始時假設 ai0 最大 */maxj=0; /* 將列號 0賦給 maxj 保存

55、*/for (j=0;jmax)max=aij; /* 將本行的最大數存放在 max 中 */maxj=j; /* 將最大數所在的列號存放在 maxj 中 */flag=1; /* 先假設是鞍點,以 flag 為1代表 */for (k=0;kakmaxj) /* 將最大數和其同列元素相比 */flag=0; /* 如果 max 不是同列最小,表示不是鞍點令continue;if(flag) /* 如果 flag1 為 1表示是鞍點 */printf(a%d%d=%dn,i,maxj,max); /* 輸出鞍點的值和所在行列號break;if(!flag) /* 如果 flag 為 0表示鞍點

56、不存在 */printf(It is not exist!n);return 0;6-9#include #define N 15int main() int i,number,top,bott,mid,loca,aN,flag=1,sign;charc;printf(enter data:n);scanf(%d,&a0);i=1;while(i=ai-1)i+;elseprintf(enter this dataagain:n);printf(n);for (i=0;iN;i+)printf(%5d,ai);printf(n);while(flag)printf(input number t

57、olook for:);scanf(%d,&number);sign=0;top=0; /top是查找區間的起始位置bott=N-1; /bott 是查找區間的最末位置if (numberaN-1) /要查的數不在查找區間內loca=-1; / 表示找不到while (!sign) & (top=bott)mid=(bott+top)/2;if (number=amid)loca=mid;printf(Has found %d, itsposition is %dn,number,loca+1);sign=1;elseif (numberamid)bott=mid-1;elsetop=mid+

58、1;if(!sign|loca=-1)printf(cannot find %d.n,number);printf(continu or not(Y/N)?);scanf( %c,&c);if (c=N|c=n)flag=0;return 0;6-10#include int main()int i,j,upp,low,dig,spa,oth;chartext380;upp=low=dig=spa=oth=0;for (i=0;i3;i+) printf(please input line %d:n,i+1);gets(texti);for (j=0;j=A& textij=a & texti

59、j=0 & textij=9)dig+;elseif (textij= )spa+;elseoth+;printf(nupper case:%dn,upp);printf(lower case:%dn,low);printf(digit :%dn,dig);printf(space :%dn,spa);printf(other :%dn,oth);return 0;6-11#include int main() chara5=*,*,*,*,*;int i,j,k;charspace=;for (i=0;i5;i+) printf(n);printf( );for (j=1;j=i;j+)pr

60、intf(%c,space);for (k=0;k5;k+)printf(%c,ak);printf(n);return 0;6-12a-c#include int main() int j,n;charch80,tran80;printf(input cipher code:);gets(ch);printf(ncipher code :%s,ch);j=0;while (chj!=0) if (chj=A) & (chj=a) & (chj=z)tranj=219-chj;elsetranj=chj;j+;n=j;printf(noriginal text:);for (j=0;jn;j+

溫馨提示

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

評論

0/150

提交評論