版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、答案僅供參考實(shí)驗(yàn)一4. 設(shè)汁main函數(shù)實(shí)現(xiàn)從鍵盤上輸入兩個(gè)整型變量a、b的值,交換它們的值并輸岀。SincludeOvoid mainOint a, b, c;printf(/zenter first integer :”);scanf&a);printf (z,enter second integer :”);scanf&b);c=a;a=b;b=c;printf (,z%d, %dnz/, a, b);getchO ;5. 設(shè)計(jì)main函數(shù)實(shí)現(xiàn)從鍵盤上輸入兩個(gè)整型變戢a、b的值,并將b的值加入到a中, 輸出a的值。IfincludeOvoid mainOint a, b, c;print
2、fCzenter first integer :”);scanf (/z%dz,, &a);printf Center second integer :”);scanf (Ed, &b);c=a+b;a=c;printf (zza=%d, b=%dnz,, a, b);getchO ;6. 從鍵盤輸入整數(shù)x的值,根據(jù)公式y(tǒng)=x5+3x:+x-l0求y的值,輸出x和y的值。SincludeOvoid mainO int x, y;printf(enter first integer :”);scanf (Ed, &x);y=x*x*x+3*x*x+x-10;printf (,zx=%d, y=%
3、dn, x, y);getchO ;實(shí)驗(yàn)二1. 編寫程序,從鍵盤上輸入一個(gè)整數(shù)(例如560)表示分鐘,將其換算成用小時(shí)和分鐘表示,然后輸出至屏幕。include void mainOint a, b, hour, min;printf (enter first integer :”);scanf &a);b=60;hour=a/b;min=a%b;printf (hour=%d, min=%dnz,, hour, min);getchO ;2. 編寫程序,輸入兩個(gè)整數(shù)(例如1500和350),求出它們的商和余數(shù)并進(jìn)行輸岀。include void mainOint a, b, c, d; a=
4、1500, b=350; c=a/b;d=a%b;printfc, d);getchO ;3編寫程序,讀入3個(gè)整數(shù)給分別變量ib,c,然后將a, b,c的值輸岀到屏幕,再交換它們中的數(shù)值,把a(bǔ)中原來(lái)的值給b,把b中原來(lái)的值賦給c,把c中原來(lái)的值賦給乳然后再 次輸岀a, b,c的值到屏幕。#include void mainOint a, b, c, d;printf(enter first integer :“);scanf (/z%d? &a);printf (enter second integer :”);scanf (/z%d/z, &b);printf (z,enter third
5、integer :“);scanf f &c);printf (z,a=%d, b=%d, c二%dn, a, b, c); d二 c; c=b; b=a;a=d;printf (z,a=%d, b=%d, c=%d?,, a, b, c); getchO ;4. 編寫程序.讀入3個(gè)雙精度數(shù),求它們的平均值輸岀到屏幕。tfinclude void mainOdouble sum=0;double a, b, c, d;printf (enter first integer :“);scanf C%lf&a);printf (enter second integer :”);scanf (z,%
6、lfz &b);printf(enter third integer :”);scanf df, &c);sum=a+b+c;d二sum/;printf (zzd=%lf/z, d);getchO ;5. 下列程序中,要求main函數(shù)實(shí)現(xiàn)如下功能:從鍵盤上輸入3個(gè)正整數(shù),求出它們中 的最大值。請(qǐng)完善程序,并在程序最后用注釋的方式給出你的測(cè)試數(shù)據(jù)及在這組測(cè)試數(shù)據(jù)下 的運(yùn)行結(jié)果。include void mainOint a , b , c , d , max;printf( uEnter three integers:M );scanf( “%d%d%d”a,&b,&c);if(ab)max=a
7、;elsemax=b;if(cmax)max=c;printf ( umax of the three numbers is, max);grtchO ;6. 請(qǐng)編程序:對(duì)從鍵盤上輸入的x值,根據(jù)以下函數(shù)關(guān)系汁算岀相應(yīng)的y值(設(shè)x,y 均為整型雖:)。計(jì)算y的公式0x10-5x+20X值的范國(guó)x00=x1010=x2020=x40井include void mainOint x,y; printf(x=/z); scanf($d,&x);if (x0)y=o;else if (x=0)尸x;else if (x=10&x=20&x40) y=(-5)*x+20;printf(%d , y);g
8、etchO ;實(shí)驗(yàn)三1. 下列程序想求出滿足如下條件的三位數(shù)n: (l)n除以11 (整數(shù)相除)所得到的商等 于n的各位數(shù)字的平方和:(2)n中至少有二位數(shù)字相同。如:131除以11的商為11, 131 各位數(shù)字的平方和為11,131中有二位數(shù)字相同,故131是所要求岀的三位數(shù)中的一個(gè):又 如550,也是滿足條件的三位數(shù)。源程序中有些錯(cuò)誤,請(qǐng)你改正并最終使程序得到如下的運(yùn) 行結(jié)果:131550900井include void mainO int n , a , b , c;for(n=l; n1000; n十+) a=n/100; b=n/10%10; c=n%10;if (n/1 i=a*a
9、+b*b+c *c& (a=b a=c b=c)printf (z,%dnz n); getchO ;2請(qǐng)編程序,實(shí)現(xiàn)從鍵盤上輸入任意一個(gè)整數(shù)n,求出n的各位數(shù)字之和。例如,當(dāng)n 為263時(shí),各位數(shù)字之和為11。下而是一個(gè)可以實(shí)現(xiàn)逐位數(shù)字累加功能的程序段,試?yán)斫?后應(yīng)用到自己的程序中。k=0;n=263;do k+=n%10;n/=10;while(n);include void mainOscanf &n);k=0;do k+=n%10;n/=10;while(n);printfk);getchO ;3. 試找出符合下列條件的正整數(shù):(1)該數(shù)是一個(gè)三位數(shù):(2)該數(shù)是37的倍數(shù):(3) 該
10、數(shù)循環(huán)左移后得到的另兩個(gè)數(shù)也是37的倍數(shù)。例如148是37的倍數(shù),481和814也是37 的倍數(shù)。SincludeOvoid mainOint n, a, b;for(n=100;n=le-5)a=b;n+;b=b*4*n*n/(2*n-l)/(2*n+l);printf (/z%f,2*a, 2*b);getchO ;5. 請(qǐng)編程序求出滿足如下條件的四位數(shù)n: (l)n的范囤為5000, 8000: (2)n千位上 的數(shù)減百位上的數(shù)減十位上的數(shù)減個(gè)位上的數(shù)大于零。編程要求:以每行5個(gè)輸岀滿足條件 的數(shù)及該類數(shù)的個(gè)數(shù)。SincludeOvoid mainOint n, a, b, c, d,
11、k=0;for(n=5000;n0)printf (,z%5d,z, n);k卄;if (k%5=0) printf (,znO ;printfk);getchO ;6. 請(qǐng)編程序求出滿足如下條件的一個(gè)四位整數(shù),它的9倍恰好是其反序數(shù)(例如,1234 與4321互為反序數(shù)九TtincludeOvoid mainOint n, e, a, b, c, d;for(n=1000;n=9999;n+) a=n/1000;b=n/100%10;c=n/10%10;d=n%10;e=d*1000c *100+b*10+a;if(9*n=e)printf (%dz n);getchO ;7. 請(qǐng)編程序求出
12、從鍵盤上輸入的兩個(gè)正整數(shù)a和b的最大公約數(shù)和最小公倍數(shù)。include void mainOint m, n, r, x;scanf (%d,&m, &n);x=m*n;while(n!=0)r=m%n;n=r;printf (%d $d: m, x/m);getchO ;8. 請(qǐng)編程序計(jì)算l!+2!-3!+n!的前10項(xiàng)之和。include void mainOlong sum, k;int i, j;sum=0;for(i=l;i=10;i卄)for(j=l,k=l; j=i;j 卄)k*=j;sum+=k;printf(“l(fā)dn, sum);getchO ;實(shí)驗(yàn)四1. 反序數(shù)。例如,12
13、3的反序數(shù)是321。請(qǐng)?jiān)O(shè)訃程序,從鍵盤上輸入一個(gè)整數(shù),求苴反序數(shù) 并輸出。include ”mainO int n, k;printfCn=);scanf &n);k=0;while(n!=0)k=k*10+n%10;n/=10;printf(k=%d, k);getchO ;2. 完備數(shù)。完備數(shù)是一些特殊的自然數(shù),它所有的真因子(即除了自身以外的約數(shù))之和 恰好等于該數(shù)本身。例如,6二1+2+3,故6是一個(gè)完備數(shù)。請(qǐng)?jiān)O(shè)計(jì)程序,找出500以內(nèi)的 所有完備數(shù)。井include void mainO int n, i, k;for(n=l;n=500;n+)k=0;for(i=l;i=n-l;i+
14、)(if(n%i=0)k+二i;if(n=k) printf (%dn, n);getchO ;3. 回文數(shù)。一個(gè)數(shù)如果正讀和倒讀(即反序數(shù))相同.稱該數(shù)是回文數(shù)。例如,121、1331 均為回文數(shù)。請(qǐng)?jiān)O(shè)計(jì)程序,找岀200300之間的所有回文數(shù),并以每行8個(gè)數(shù)輸出至屏 幕。include void mainO int n, k, i, m=0;for(n=200;n=300;n+)k=0;i=n;while(i!=0)k=k*10+i%10;i/=10;if(n=k)m+十;printfC%8dn);if(m%8=0) printf(n);getchO ;4回文質(zhì)數(shù)。一個(gè)數(shù)如果是回文數(shù),同時(shí)又
15、是質(zhì)數(shù),則該數(shù)被稱為回文質(zhì)數(shù)。諳設(shè)汁程序, 找出100500之間的所有回文質(zhì)數(shù),并以每行5個(gè)輸出至屏幕。includeinclude void mainO int n, ky i, m;for (n=100;n=500;n+)k=0;i=n;while(i!=0) k=k*10+i%10;i/=10;if(n=k) for(m=2;msqrt(n)fprintf (z,%4dzz, n);account*+;if (account%5=0)printf( “n” );JgetchO ;5.絕對(duì)質(zhì)數(shù)。如果一個(gè)數(shù)和其反序數(shù)均為質(zhì)數(shù),則該數(shù)被稱為絕對(duì)質(zhì)數(shù)。女口,13是質(zhì)數(shù), 其反序數(shù)31也為質(zhì)數(shù),則
16、13和31是一對(duì)絕對(duì)質(zhì)數(shù)。請(qǐng)?jiān)O(shè)計(jì)程序,找出200以內(nèi)的絕對(duì) 質(zhì)數(shù)。include include void mainO int n, k, i, m, a;for(n=l;n=200;n+) for(a=2;asqrt(n) i=n,k=0;while (i!=0) k=k*10+i%10;for(m=2:msqrt(k)printfn);getch0;6.平方鏡反數(shù)。如果一個(gè)數(shù)的平方數(shù),是其反序數(shù)的平方數(shù)的反序數(shù),則稱該數(shù)和其反序 數(shù)是一對(duì)平方鏡反數(shù)。例如,12的平方數(shù)是144,其反序數(shù)為21, 21的平方數(shù)是441, 英反序數(shù)是12的平方數(shù)144,故12和21是一對(duì)平方鏡反數(shù)。請(qǐng)?jiān)O(shè)計(jì)程序找
17、出200以內(nèi) 的所有平方鏡反數(shù)對(duì)。include include void mainO int n, k, i, a, b;for(n=l;n=200;n+)k=0;i=n;while(i!=0) k=k*10-i%10;i/=10;a=k*k;b=0;while(a!=0)b=b*10+a%10;a/=10; if(b=(n*n)printf (力dn, n);getchO :7. 黑洞數(shù)。黑洞數(shù)又稱陷阱數(shù),是類具有奇特轉(zhuǎn)換特性的整數(shù)。任何一個(gè)數(shù)字不全相同整 數(shù),經(jīng)有限“重排求差”操作,總會(huì)得到某個(gè)數(shù),這些數(shù)即為黑洞數(shù)?!爸嘏徘蟛睢辈僮?即把組成該數(shù)的數(shù)字重排后得到的最大數(shù)減去重排后得到的最
18、小數(shù)。隨便造一個(gè)四位數(shù),如al二1231,先把組成部分1231的四個(gè)數(shù)字由大到小排列得到 a2二3211,再把1231的四個(gè)數(shù)字由小到大排列得a3二1123,用大的減去小的 a2-al二3211-1123二2088。把2088按上面的方法再作一颯,由大到小排列得8820,由小 到大排列得288,相減8820-288二8532。把8532按上面的方法再作一遍,由大到小排列 得8532,由 小到大排列得2358,相減8532-2358=6174。如果再往下做,奇跡就岀現(xiàn)了! 7641-1467=6174,又回到6174。6174便是一個(gè)4位黑洞數(shù)。請(qǐng)編寫程序,用上述方法找出3位黑洞數(shù)。暫無(wú)答案實(shí)驗(yàn)
19、五1.有一張足夠大的紙,厚亳米,問(wèn)將它對(duì)折多少次后可以達(dá)到珠穆朗瑪峰的高度(8848米) #include void mainOdouble a=9e-2;int n=0;while (a=8848)a=a*2;n+;printf (,za=%dz/, n);getchO ;2請(qǐng)?jiān)O(shè)計(jì)程序采用遞推法計(jì)算下列級(jí)數(shù)的近似值,當(dāng)n取某一值使得x 7n! =p*=(x*x);q+=2;k+;n*=k;sum+= (m*p) / (q*n); printf (Wlf: sum); getchO ;當(dāng)通項(xiàng)的絕對(duì)值小于等于3請(qǐng)?jiān)O(shè)計(jì)程序,根據(jù)下列公式計(jì)算cos(x)的近似值。精度要求:i(r為止。cos(x)
20、=1x2/2! +x/4!-x6/6!+ (-1)Rx2/(2n) !include include void mainO double x, k, sum, term, a, b, m;printf Cx=);scanf&x);sum=l:m=l;a=0;k=l;b=l;term=l;while(fabs(term)(k*=(x*x);m=-m;a+=2;b*=(a* (a-1);sum+二(m*k)/b); term=(m*k)/b;printf(cos(x)二%If, sum); getchO ;】0. X2M3214請(qǐng)?jiān)O(shè)計(jì)程序采用遞推法計(jì)算乞(一一7的值。即求的值。其中X 七 /!1!
21、10!為鍵盤輸入的一個(gè)任意的單精度實(shí)數(shù)。include void mainOint i,p;float x, m q, sum;printf(x=);scanf &x);sum=x;m=x;P=l;Q=l;for(i=l;ik*=(x*x);m=-m;a+=2;b*=(a*(a-1);sum+=(m*k)/b);term=(m*k)/b;sum=(-l)*sum*cos(x)/x;sum十=2;printfsum);getchO ;實(shí)驗(yàn)六3. 水仙花數(shù)是指一個(gè)3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。請(qǐng)完善下列程序中的函 數(shù)int daffodil (int n),其功能是判斷整數(shù)n是否為水仙花
22、數(shù),如是,則該函數(shù)返回 值1,否則返回值0。注意,不能更改main函數(shù)。include int daffodil(int n) int k二0, m;m=n;dok+二(m%10)*(m%10)*(m%10);m/=10;while(m);if(n=k)return 1;else return 0;mainO int m, i=0;for (m=100;m 1000; m+)if(daffod il(m)=l) printf (z,%5dz/, m);i+;if (i%5=0)printf (n);getchO ;4. 請(qǐng)編寫程序,找出滿足如下條件的整數(shù)m:該數(shù)在11,999之內(nèi);m、m5均為
23、回文數(shù)。例如m=ll,m二1331, 11、121、1331皆為回文數(shù),故m二11是滿足條件的一個(gè)數(shù)。請(qǐng)?jiān)O(shè)計(jì)函數(shù)int value (long m),其功能是判斷m是否是回文數(shù),如是,該 函數(shù)返回值1,否則返回值0。編寫main函數(shù),求出11, 999內(nèi)滿足條件的所有整數(shù)。#include int value(long m)long s, n;S 二0;n=m;while(n) s=s*10+n%10;n/=10; if(s=m) return 1;elsereturn 0; mainO long m;for(m=l1;m1000;m+)if (value (m) =1&lvalue (m*m
24、) =1&value=1) printfm);getchO ;5.設(shè)n是一個(gè)給定的正整數(shù)。對(duì)于i=0, b 2,,定義:若m是偶數(shù),則n:=nt/2:若 m是奇數(shù),則n:F3m+l;若n:是1,則序列結(jié)束。用這種方法產(chǎn)生的數(shù)稱為冰錘數(shù)。請(qǐng) 編寫一個(gè)函數(shù)void hailstones(int n),其功能是顯示由n產(chǎn)生的所要求的序列,按每 行6個(gè)數(shù)輸岀該數(shù)列中的所有數(shù)。編寫main函數(shù),在main函數(shù)中泄義一個(gè)整型變量n, 從鍵盤上輸入值77賦給n,用n作為實(shí)參調(diào)用函數(shù)hailstones。測(cè)試數(shù)據(jù):77/輸出結(jié)果:Hailstones generated by 77:7723211658298
25、84422113417522613402010L168421Number ofhailstonesgenerated:23include void hailstones(int n);void mainOint n;scanf&n);hailstones(n);getchO ;void hailstones(int n) int i;printf (?,Hailstones generated by 77:n);匸0;while(n!=l)printf($5d, n);i+;if(n%2=0)n=n/2;elsen二3*n+l;if(i%6=0)printfCn);printf (%5dn,
26、n);i+;printf (,zNumber of hailstones generatedi);6. 請(qǐng)按要求編寫程序。編程要求:(1) 編寫函數(shù)int twinborn(int m, int n),其功能是判斷整數(shù)m和n是否為李生質(zhì)數(shù) 對(duì)(相差為2的兩個(gè)質(zhì)數(shù)稱為攣生質(zhì)數(shù)),如是,則函數(shù)返回值1,否則返回值0。(2) 編寫main函數(shù),求出10,99內(nèi)的所有攣生質(zhì)數(shù)對(duì),使得程序的運(yùn)行結(jié)果為:11, 1317, 1929,3141,4359,6171,73include int prime(int m)int n;for(n=2;n=(m/2);n+)if(m%n=0)return 0;ret
27、urn 1;int twinborndnt m, int n) ifprime(m)-prime(n)=2)return 1;elsereturn 0;void mainOint n, m;for (n=10; n=97; 口卄) m 二n+2;if(twinborn(m, n)=1) printf (,z%d, %dn, n, m);getch0;實(shí)驗(yàn)七1. 用牛頓迭代法求方程3x3-3x:+x-l=0x0=2附近的實(shí)根。要求: 用函數(shù)float newtoon(float x)求方程在x附近的根; 用函數(shù)float F(float x)求x處的函數(shù)值,用函數(shù)float Fl (float
28、x)求f(x)在x 處的導(dǎo)數(shù): 在主函數(shù)中輸入xO,調(diào)用函數(shù)求得方程的近似根,并輸岀結(jié)果。請(qǐng)完善下列程序,使之完成上述功能。并請(qǐng)以注釋的方式在程序的最后給出你在運(yùn)行該 程序時(shí)所選用的測(cè)試數(shù)據(jù)及在該測(cè)試數(shù)據(jù)下的運(yùn)行結(jié)果。include 吾include float F(float x)returnx*(3*x*(x-1)+1)T;float Fl (float x)return 9*x*x-6*x+l;float newtoon(float x)float f, fl, xO;do xO=x:f=F(xO);fl=Fl(xO); x=xO-f/fl;while(fabs(x-xO)le-5);r
29、eturn x;void mainOfloat xO;scanf (%f,&xO);printf (The result =:, 2fnz,, newtoon(xO); getchO ;2. 請(qǐng)?jiān)O(shè)計(jì)程序,用二分法求方程+在(0,1)內(nèi)的近似根。直到f(x);為止。#include #include float f(float x)return(x*x*x+*x*x+*;void mainOfloat m=0, n=l, r;r= m-n);while(l)if(fabs(f(r)le-4) break;if(f(m)*f(r)0) n=r;else m=r;r=(m+n)/;printf(x=
30、%f, r);getch0;3. 以下程序的功能是從鍵盤上輸入10個(gè)整數(shù),并檢測(cè)整數(shù)3是否包含在這些數(shù)據(jù)中, 若包含3,則顯示出第一個(gè)3出現(xiàn)的位置,程序有些錯(cuò)誤,試改正之。include void mainOint daraLlO,j=0;while (j10) scanf (;j+;for(j=0;j10;j+) if(dataj=3)printf(3 is in the position of %dn ,jl);break;if(j=10) printf (not found!n “);getch0;4.請(qǐng)編輯調(diào)試下列程序,觀察英運(yùn)行結(jié)果,理解數(shù)組名作為函數(shù)參數(shù)時(shí)的作用。該程 序的功能是選
31、出a數(shù)組中下標(biāo)為奇數(shù)的并大于10的項(xiàng)并且輸岀滿足條件的個(gè)數(shù)。【源程序】include int fun(int a, int b)int i,j=0;for(i=0;ai;i+) if(i%2=0)continue ;if(ai10) bj+=ai;return j;void mainOint a10二3,15, 32, 23, 11, 4, 5, 9,b10; int i, x;x=fun(a, b);for(i=0;ix;i 卄)printf (%dt, bi);printf (n%d, x);實(shí)驗(yàn)八1 請(qǐng)編輯調(diào)試下列程序,觀察、理解其運(yùn)行結(jié)果,并敘述該程序的功能。 【源程序】include
32、 int fun(int a, int b)int i, j=0;for(i=0;ai;i+) if(i%2=0)continue ;if(ai10)bj+=ai;return j;void mainOint a10二3,15, 32, 23, 11, 4, 5, 9,b10;int i=0, x=0;x=fun(a, b);for (i=0;ix;i+)printf (z/%dt/z, b i);printf (n%d, x);該程序的功能:選岀a數(shù)組中下標(biāo)為奇數(shù)的并大于10的項(xiàng)并且輸岀滿足條件的個(gè)數(shù)。2.以下程序在a數(shù)組中查找與x值相同的元素的所在位苣。請(qǐng)完善程序。【源程序】include
33、 void mainOint atll , x , i;printf (z,Enter 10 Integers An*);for(i=l; i0)printf (/z%5d s position is %4dnz,, x, i);else printf (%d is not found! n,z, x):getchO ;3.下列程序是利用插入排序法將n個(gè)數(shù)從大到小進(jìn)行排序,插入排序的算法思想如下:從 一個(gè)空表開始,將待排序的數(shù)一個(gè)接一個(gè)插入到己排好序的有序表中(空表視為有序),從而得到 一個(gè)新的、idM數(shù)增1的有序表。例如:當(dāng)n=7時(shí),待排序的數(shù)及每一趟有序表的變化情況如下:趟數(shù)有序表剩余待排
34、序數(shù)初始狀態(tài)空49 38 65 97 76 13 27第1趙4938 65 97 76 13 27第2趙49 3865 97 76 13 27第3趙65 49 3897 76 13 27第4趙97 65 49 3876 13 27第5趙97 76 65 49 3813 27第6趙97 76 65 49 38 1327第7趙97 76 65 49 38 27 13空請(qǐng)完善下列程序并進(jìn)行調(diào)試。include void mainOint #10二10, 9, & 7, 3, 4, 5, 1, -3, 0, i, j, t; sort (a, 10);printfCAnthere is 10 numb
35、er: “); for(i=0; i二9; i+)printf Cz%4d,z, ai);getchO ;int sort (int int n)int i, j, t;for(i=l; i=O)&(taj) aj+l二aj;J;aj+l二t;4.請(qǐng)按下列要求設(shè)計(jì)程序:請(qǐng)編寫void seisort (int a,int n)函數(shù),其功能是用選擇排序算法對(duì)a指向的 長(zhǎng)度為n的數(shù)組進(jìn)行從小到大排序。(2)編寫main函數(shù),聲明一個(gè)一維數(shù)組并用下列測(cè)試數(shù)據(jù)初始化,調(diào)用sei sort函數(shù)實(shí) 現(xiàn)a3到a8元素從小到大排序。測(cè)試數(shù)據(jù)為:6 8 9 12 16 -3 90 -9 10 1。#includ
36、evoid seisort(int a, int n)int i, j, k, t;for(i=3;i=n-2;i+)k二 i;for(j=i+l;jaj) k=j;t=ai;ai二ak;ak=t;void mainOint a10 = 6, 8, 9, 12, 16, -3, 90,-9,10, 1, i;seisort (a, 9);for(i=0;i10;i+)printf(%5d, ai);getchO ;5.冒泡排序算法的C語(yǔ)言描述如下:void bb_sort(int a, int n) int i, j, t;for(i=0;inl;i+)for(j=0;jaj+lj) t=aj
37、;aj=aj+l;aj+l=t;但這個(gè)算法對(duì)問(wèn)題規(guī)模為n的待排序數(shù)組來(lái)說(shuō)要進(jìn)行n-1趟排序。事實(shí)上,對(duì)一些測(cè)試 數(shù)據(jù),如2 1 5 6 7 8 9等7個(gè)數(shù)據(jù)來(lái)說(shuō),利用上述冒泡排序算法,在第2趟排序過(guò) 程中已沒(méi)有元素的交換,亦即排序進(jìn)行2趟后就已經(jīng)有序。試修改上述冒泡算法,使之在已 經(jīng)有序的情況下提前結(jié)束外循環(huán)以提高程序執(zhí)行效率。并利用題4的main函數(shù)調(diào)用改進(jìn)的 函數(shù)實(shí)現(xiàn)對(duì)待排序數(shù)據(jù)的排序。SincludeOvoid bbsort (int a, int n) int i, j, t, flag=l;for(i=0;in-l&flag;i+)flag=0;for (j=0;jaj+l) t 二 aj;aj=aj+l;aj+lj=t;flag=l;void mainOint a7=2,1,5, 6, 7, 8,9, i;bbsort (a, 7);for(i=0;i7;i 卄)printf Cz%5d/z, ai);getchO ;實(shí)驗(yàn)九1請(qǐng)編輯調(diào)試下列程序,觀察英運(yùn)行結(jié)果,理解數(shù)組的聲明、數(shù)組元素的引用等基本 概念?!驹闯绦颉縎include void mainOint a33二3, 8,12, 4,7, 10, 2, 5,11,for(j=0;j3;j+) for (k=0; k2; k+) for(i=0;iai+l j) t=ai j, ai j=ai+l j, a
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024銀杏樹苗圃基地設(shè)施租賃與苗木采購(gòu)合同3篇
- 2025年度智能化場(chǎng)消防系統(tǒng)升級(jí)改造維修工程合同4篇
- 2025年度新型智能車位買賣合同規(guī)范4篇
- 2025年度新能源汽車生產(chǎn)車間承包合作框架協(xié)議4篇
- 2025年度數(shù)據(jù)中心機(jī)房租賃及維護(hù)服務(wù)合同4篇
- 2025年度水庫(kù)環(huán)境保護(hù)與承包服務(wù)協(xié)議4篇
- 2024版軟件開發(fā)與授權(quán)合同
- 2024精裝修商品房購(gòu)房合同
- 2025年度文化旅游資源整合開發(fā)承包協(xié)議合同2篇
- 2025年度新能源車輛定點(diǎn)充電與清洗服務(wù)合同4篇
- 2025年度土地經(jīng)營(yíng)權(quán)流轉(zhuǎn)合同補(bǔ)充條款范本
- 南通市2025屆高三第一次調(diào)研測(cè)試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國(guó)人民保險(xiǎn)集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 0的認(rèn)識(shí)和加、減法(說(shuō)課稿)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)人教版(2024)001
- 重癥患者家屬溝通管理制度
- 醫(yī)院安全生產(chǎn)治本攻堅(jiān)三年行動(dòng)實(shí)施方案
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對(duì)法》及其應(yīng)用案例
- 信息安全意識(shí)培訓(xùn)課件
- Python試題庫(kù)(附參考答案)
- 小學(xué)二年級(jí)數(shù)學(xué)口算練習(xí)題1000道
評(píng)論
0/150
提交評(píng)論