版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 for(i=0;i=head;i+)rabbit=i;chick=head-rabbit;/*滿足共有88個頭的條件*/if(rabbit*4+chick*2=foot)/*滿足共有244只腳的條件*/printf(rabbit=%d,chick=%dn,rabbit,chick);我國古代有一道有名的數(shù)學(xué)難題,稱為“百雞問題”:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買了百雞,問雞翁、雞母、雞雛各買了多少只?程序代碼一:#includevoidmain()inti,j,k;for(i=1;i=20;i+)for(j=1;j=33;j+)k=100-i-j;if(k%3=0)&(
2、i*5+j*3+k/3=100)&k)printf(%4d%4d%4dn,i,j,k);/*滿足雞雛k為整數(shù)且大于等于1只,同時正好買了100元錢*/程序代碼二:#includevoidmain()inti,j,k;printf(n);for(i=1;i=100;i+)for(j=1;j=100;j+)for(k=1;k=100;k+)if(i+j+k=100&15*i+9*j+k=300&k%3=0)printf(%4d%4d%4dn,i,j,k);有一個棋盤,在第一個格子里放1粒米,在第2個格子中放第一個格子中兩倍的米,以此類推。共有64個格子,編一個程序計算64個格子中的米數(shù)總和并輸出。
3、浮點型數(shù)據(jù)由于在TC+3.0環(huán)境中輸出時,有效數(shù)據(jù)位數(shù)有限,存在舍入誤差,輸出時不是精確值,本題目的只是要求掌握解題方法。程序代碼如下:#includevoidmain()inti;doublex=0.5,s=0.0;for(i=1;i65;i+)x=2*x;/*后一個格子的米的數(shù)量是前一個格子的兩倍*/s+=x;printf(s=%en,s);/*計算結(jié)果為浮點型數(shù)據(jù),采用指數(shù)形式輸出*/4.25求1-999之間的所有同構(gòu)數(shù)。一個數(shù)出現(xiàn)在它的平方數(shù)的右端,這個數(shù)稱為同構(gòu)數(shù)。如5出現(xiàn)在25右側(cè)5是同構(gòu)數(shù)25出現(xiàn)在625右側(cè)25也是同構(gòu)數(shù)程序代碼一:#includevoidmain()longk
4、,m,n;for(k=1;k=999;k+)/*k為一位數(shù)*/*k為兩位數(shù)/*k為一位數(shù)*/*k為兩位數(shù)*/*k為三位數(shù)*/if(k100)n=m%100;elsen=m%1000;if(k=n)printf(%5d,k);printf(“”n);程序代碼二:#includevoidmain()longk,m,n;for(k=1;k4),都能夠分解為兩個素數(shù)之和。程序代碼如下:#includevoidmain()intn,p,q,i,signp,signq;scanf(%d,&n);while(n%2!=0)/*如果n為奇數(shù),則重新輸入7printf(”nisnoteven.”);scanf(
5、%d,&n);p=1;dop=p+1;q=n-p;signp=1;for(i=2;i=p/2;i+)if(p%i=0)signp=0;signq=1;for(i=2;i=q/2;i+)if(q%i=0)signq=0;while(!signp|!signq);printf(%d=%d+%dn,n,p,q);4.27整錢換零錢:要將100元錢換成1元、2元、五元的零錢,編程求出有幾種換法?程序代碼如下:#includevoidmain()inti,j,k;k=0;for(i=0;i=20;i+)for(j=0;j=(100-i*5)/2;j+)if(k%10=0)printf(“n”);k+;p
6、rintf(%d,%d,%d;n,i,j,100-5*i-2*j);printf(nk=%dn,k);4.28密碼問題:先輸入數(shù)字k(OvkvlO),再將輸入的一行字符中的英文字母按照其后續(xù)的i個字母輸出,字母超出最后一個Z”或“z”時,循環(huán)轉(zhuǎn)換,數(shù)字不轉(zhuǎn)換。請編程實現(xiàn)。程序代碼如下:#includevoidmain()intk;charchr;printf(inputk:);scanf(%d,&k);scanf(%c,&chr);/*接收上面輸入的回車符,否則第一個輸入的字符為回車符*/chr=getchar();/*循環(huán)之前輸入第一個字符*/while(chr!=n)if(chr=a&ch
7、r=A&chrz|(chrZ&chr=Z+k)/*如果超界,則循環(huán)轉(zhuǎn)換*/chr=chr-26;printf(%c,chr);chr=getchar();/*循環(huán)輸入下一個字符*/4.29用牛頓迭代法求非線性方程f(x)=X3+4X2-10=0的根,XG0,3。其迭代公式為:xn=xn-l-f(xn-l)/f(xn-l)。程序代碼如下:#includevoidmain()floatx0,x,f,f1;x0=1.5;do/*利用迭代方法求出近似解*/f=(x+4)*x)*x-10;f1=(3*x+8)*x;x0=x-f/f1;while(fabs(x0-x)=1e-5);printf(x=%fn
8、,x0);4.30編寫程序,實現(xiàn)用矩形法求如下定積分:I=J8.4(x2+sinx)dx2.5程序代碼如下:#include#includevoidmain()intn,k;floata,b,h,area,x;a=2.5;b=8.4;printf(inputn:);scanf(%d,&n);/*輸入等分?jǐn)?shù)*/h=(b-a)/n;area=h*(a*a+sin(a);/*第一個小矩形面積*/for(k=1;kn;k+)x=a+k*h;/*h=(b-a)/n則xi=a+i*h*/area+=h*(x*x+sin(x);/*小矩形面積累加*/printf(area=%fn,area);第5章數(shù)組5.
9、1用直接交換法對10個整數(shù)進行從大到小的排序。程序代碼如下:voidmain()intm10;inti,j,temp;printf(Enterarraym:n);for(i=0;i10;i+)scanf(%d,&mi);for(i=0;i9;i+)/*當(dāng)前元素與后續(xù)各元素逐個比較交換/*當(dāng)前元素與后續(xù)各元素逐個比較交換*/mj=temp;printf(Nowarraymis:n);for(i=0;i10;i+)printf(%d,mi);printf(n);5.2用篩選法求1-100之內(nèi)的素數(shù)程序代碼如下:#include#includevoidmain()intI,j,n,a101;for(
10、i=1;i=100;i+)ai=i;a1=0;/*只需判斷到100/*只需判斷到100平方根的整數(shù)為止*/*判斷當(dāng)前元素是否已置0*/*用當(dāng)前未置0的元素去除后續(xù)各元素*/*若可整除則為非素數(shù),且置0*/printf(n);for(i=1;ikp)elsewhile(x_inkp)for(i=n;ip;i-)ki=ki-1;kp=x_in;/*原數(shù)組kp倒kn-l各元素向后移一個位置*/*輸入數(shù)插到其應(yīng)處的位置上*/*查找輸入數(shù)應(yīng)插入的元素下標(biāo)p*/p+;n+;printf(NowArraykis:n);for(i=0;in;i+)printf(%d,ki);printf(n);5.4輸入20
11、個實數(shù)存放在一維數(shù)組中,輸出它們的平均值以及高于平均值的數(shù)的個數(shù)程序代碼如下:voidmain()floata20,sum=0,ave;inti,n=0;printf(Enterarraya:n);for(i=0;i20;i+)scanf(%f,&ai);for(i=0;i20;i+)sum+=ai;ave=sum/20.0;for(i=0;iave)n+;/*統(tǒng)計高于平均值的個數(shù)*/printf(Theaverage=%fn,ave);printf(connt=%dn,n);voidmain()floata20,ave;inti,n;printf(Enterarrayvalue:n);sca
12、nf(%d,&x_in);if(x_inkn-1)kn=x_in;elsewhile(x_inkp)/*輸入數(shù)比最后一個元素大,則追加在最后*/*查找輸入數(shù)應(yīng)插入的元素下標(biāo)p*/p+;for(i=n;ip;i-)ki=ki-1;kp=x_in;/*原數(shù)組kp倒kn-l各元素向后移一個位置*/*輸入數(shù)插到其應(yīng)處的位置上*/n+;printf(NowArraykis:n);for(i=0;in;i+)printf(%d,ki);printf(n);5.5有18個數(shù)圍成一圈,求相鄰三個數(shù)之和的最大小數(shù)。程序代碼如下:voidmain()inta18,a3,min,i,i2,i3;printf(Ent
13、erarraya:n);for(i=0;i18;i+)scanf(%d,&ai);min=a0+a1+a2;/*假設(shè)0下標(biāo)起的相鄰三元素之和最小*/for(i=1;i=18)i2=i2%18;/*若三元素中的第二個下標(biāo)超過數(shù)組長度,則以數(shù)組首元素下標(biāo)替代*/i3=i+2;if(i3=18)i3=i3%18;/*若三元素中的第三個下標(biāo)超過數(shù)組長度,則以數(shù)組首元素或第二個元素下標(biāo)替代*/a3=ai+ai2+ai3;/*a3存放每一相鄰三元素之和*/if(a3min)min=a3;printf(Arrayais:n);for(i=0;i18;i+)printf(%d,ai);printf(n);pr
14、intf(min=%dn,min);5.6在一個二維數(shù)組中找出最小數(shù)及其所在的行和列。程序代碼如下:voidmain()inta45,i,j,min,min_atr,min_atc;printf(Enterarraya:n);for(i=0;i4;i+)for(j=0;j5;j+)scanf(%d,&aij);min=a00;min_atr=min_atc=0;for(i=0;i4;i+)for(j=0;i5;j+)if(aijmin)min=aij;min_atr=i;min_atc=j;printf(Arrayais:n);for(i=0;i4;i+)for(j=0;j5;j+)print
15、f(%d,aij);printf(n);printf(min=%f,Itsat%d,%dn,min,min_atr,min_atc);5.7利用二維數(shù)組求方陣主、次對角線之和。程序代碼如下:voidmain()inta55,i;floatsum=0;printf(Enterarraya:n);for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,&aij);for(i=0;i5;i+)sum+=aii+ai4-i;/*aii、ai4-i分別為主次對角線第i行元素*/printf(Arrayais:n);for(i=0;i4;i+)for(j=0;j5;j+)printf(%
16、d,aij);printf(n);printf(sum=%fn,sum);58輸入一個mXk的實數(shù)矩陣a和一個kXn的實數(shù)矩陣b,計算兩矩陣的乘積c=aXb,c中各元素保留2位小數(shù),第3位小數(shù)四舍五入。乘積矩陣c為m行n列,其元素計算公式為:c=丈axb,ijimmjm=1程序代碼如下:voidmain()inti,j,k;floata34,b42,c32=0;printf(Enterarraya:n);for(i=0;i3;i+)for(j=0;j4;j+)scanf(%f,&aij);printf(Enterarrayb:n);for(i=0;i4;i+)for(j=0;j2;j+)sca
17、nf(%f,&bij);for(i=0;i3;i+)for(j=0;j2;j+)for(k=0;k4;k+)cij+=aik*bkj;/*依據(jù)c仝axb*/ijimmjm=1cij=(int)(cij*100+0.5)/100.0;保留2位小數(shù),第3位小數(shù)四舍五入*/printf(Arraycis:n);for(i=0;i3;i+)for(j=0;j2;j+)printf(%f,cij);printf(n);voidmain()inta34,b42,i,j,k;floatc32=0;printf(Enterarraya:n);for(i=0;i3;i+)for(j=0;j4;j+)scanf(
18、%d,&aij);printf(Enterarrayb:n);for(i=0;i4;i+)for(j=0;j2;j+)scanf(%d,&bij);for(i=0;i3;i+)for(j=0;j2;j+)for(k=0;k4;k+)cij+=aik*akj;/*依據(jù)c=丈axb*/ijimmjm=1printf(Arraycis:n);for(i=0;i3;i+)for(j=0;j2;j+)printf(%f,cij);printf(n);5.9找出一個二維數(shù)組中的鞍點,所謂鞍點就是該位置上的元素在該行上最大,在該列上最小。也有可能沒有鞍點。程序代碼如下:voidmain()inta45,i,
19、j,k,max,maxj,flag;printf(Enterarraya:n);for(i=0;i4;i+)for(j=0;j5;j+)scanf(%d,&aij);for(i=0;i4;i+)max=aiO;/*假設(shè)aiO最大*/maxj=0;/*maxj存放最大數(shù)的列下標(biāo)*/for(j=0;jmax)max=aij;/*max存放當(dāng)前行的最大數(shù)*/maxj=j;/*maxj存放當(dāng)前行最大數(shù)的列下標(biāo)*/flag=1;/*先假設(shè)是鞍點,且以flag為1代表*/for(k=0;kakmaxj)/*將最大數(shù)與其同列元素相比*/flag=0;/*若max不是同列最小,則不是鞍點,令flag=0*/b
20、reak;if(flag)printf(a%d%d=%dn,i,maxj,max);/*輸出鞍點值及所在行、列*/break;if(!flag)printf(Itisnotexist!n);/*若flag為0表示鞍點不存在*/voidmain()inta45,i,j,k,max,maxj,flag;printf(Enterarraya:n);for(i=0;i4;i+)for(j=0;j5;j+)scanf(%d,&aij);for(i=0;i4;i+)max=aiO;/*假設(shè)ai0最大*/maxj=0;/*maxj存放最大數(shù)的列下標(biāo)*/for(j=0;jmax)max=aij;/*max存放
21、當(dāng)前行的最大數(shù)*/maxj=j;/*maxj存放當(dāng)前行最大數(shù)的列下標(biāo)*/HagT;/*先假設(shè)是鞍點,且以flag為1代表*/for(k=0;kakmaxj)/*將最大數(shù)與其同列元素相比*/flag=0;/*若max不是同列最小,則不是鞍點,令flag=0*/continue;if(flag)printf(a%d%d=%dn,i,maxj,max);/*輸出鞍點值及所在行、列*/break;if(!flag)printf(Itisnotexist!n);/*若flag為0表示鞍點不存在*/5.10有n個學(xué)生,每人考m門課程,要求:找出總分最高的學(xué)生號;找出至少有一門成績不及格的學(xué)生號并輸出他們的
22、所有成績;統(tǒng)計每門成績都在85分以上的學(xué)生人數(shù)。程序代碼如下:voidmain()inta105;/*設(shè)有10位同學(xué),考三門課程,第0列存放學(xué)號,第4列存放總分*/inti,j,max,max_at,flag,n=0;for(i=0;i10;i+)ai0=1001+i;/*學(xué)號自1001起存放在數(shù)組第0列*/for(i=0;i10;i+)/*輸入10位同學(xué)三門成績*/printf(EnterNo.%dscore:n,ai0);scanf(%d,%d,%d,&ai1,&ai2,&ai3);for(i=0;i10;i+)/*計算每位同學(xué)總分并存放在各自的第4列*/for(j=1;j3;j+)ai4
23、=ai1+ai2+ai3;printf(Arrayais:n);for(i=0;i10;i+)/*輸出10位同學(xué)三門成績及總分的數(shù)據(jù)*/for(j=0;j5;j+)printf(%d,aij);printf(n);max=a04;/*假設(shè)第一位同學(xué)總分最高*/max_at=O;/*max_at存放總分最高所在行*/for(i=0;imax)max=ai4;max_at=i;printf(MaxisNo.%dn,amax_at0);/*輸出總分最高的學(xué)號*/for(i=0;i10;i+)/*查找至少一門成績不及格的同學(xué)*/flag=1;/*先假設(shè)當(dāng)前同學(xué)每門成績都及格,且以lag為1代表*/fo
24、r(j=1;j=3;j+)if(aij60)flag=0;/*只要有一門成績不及格,則令flag=0*/break;if(!flag)printf(%6d%3d%3d%3d%3dn,ai0,ai1,ai2,ai3,ai4);/*輸出至少一門不及格的學(xué)生成績*/for(i=0;i10;i+)/*統(tǒng)計每門成績在85分以上的人數(shù)*/flag=1;/*先假設(shè)當(dāng)前同學(xué)每門成績都在85分以上,且以flag為1代表*/for(j=1;j=3;j+)if(aij85)flag=0;/*只要有一門成績少于85分,則令flag=0*/break;if(flag)n+;printf(n=%2dn,n);/*輸出每門
25、成績在85分以上的人數(shù)*/5.11打印以下的楊輝三角形(輸出8行)llll2ll33ll464ll5l0l05ll6l520l56ll72l35352l7l程序代碼如下:voidmain()inta88,i,j;for(i=0;i8;i+)aii=1;/*使對角線元素均置1*/ai0=1;/*第0列元素置1*/for(i=2;i8;i+)/*自第2行開始處理*/for(j=1;j=i-1;j+)aij=ai-1j-1+ai-1j;/*元素值為上一行同一列與前列兩數(shù)之和*/printf(Arrayais:n);for(i=0;i8;i+)for(j=0;j=i;j+)printf(%d,aij)
26、;printf(n);512將如下所示的右螺旋方陣存放到hXn的二維數(shù)組并打印輸出,n(lWnWIO)從鍵盤輸入。ll6l5l4l32l72423l23l82522ll4l9202ll056789程序代碼如下:voidmain()intal0l0=0,i,j,row,col,dir_i,n;structdirectoryintx,y;dir4=l,0,0,l,-l,0,0,-l;printf(Entern:);scanf(%d,&n);for(i=1,dir_i=0,row=col=0;i=n*n;i+)arowcol=i;row+=dirdir_i.x;col+=dirdir_i.y;if(
27、row0|col=n|col=n|arowcol!=0)row-=dirdir_i.x;/*走過頭,則行坐標(biāo)返回*/col-=dirdir_i.y;/*走過頭,則列坐標(biāo)返回*/dir_i+;/*轉(zhuǎn)向下一個方向*/if(dir_i=4)dir_i=0;row+=dirdir_i.x;col+=dirdir_i.y;printf(Arrayais:n);for(i=0;in;i+)for(j=0;jn;j+)printf(%2d,aij);printf(n);5.13打印魔方陣。所謂魔方陣是指它的每一行、每一列和對角線之和均相等。如,三階魔方陣為:816357492程序代碼如下:voidmain(
28、)inta1616,i,j,k,p,n;p=1;while(p=l)/*要求輸入的n為奇數(shù)且在115之間*/printf(Entern(n=1to15):);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;/*對數(shù)組進行初始化*/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;printf(Arrayais:n);f
29、or(i=1;i=n;i+)for(j=1;j=n;j+)printf(%2d,aij);printf(n);第6章指針6.1輸入3個整數(shù),按照從小到大的次序輸出。程序代碼如下:#includevoidmain()inta,b,c;int*pa=&a,*pb=&b,*pc=&c,*temp;scanf(%d%d%d,&a,&b,&c);if(*pa*pb)pa=pb,pb=&a;/*使pa指向變量b,pb指向變量a*/if(*pa*pc)temp=pa,pa=pc,pc=temp;/*使pa指向最小值的變量*/if(*pb*pc)temp=pb,pb=pc,pc=temp;/*使pb指向次小值
30、的變量*/printf(%d%d%dn,*pa,*pb,*pc);6.2將輸入的10個整數(shù)存入一數(shù)組a中,然后實現(xiàn):輸出數(shù)組元素的平均值;輸出數(shù)組元素中的最大值與次最大值;將最大值與最小值的位置互換后輸出;輸入x,輸出x在數(shù)組a中的位置,若數(shù)組a中沒有值為x的元素,則輸出“nofound”按從小到大的次序輸出。程序代碼如下:#includevoidmain()inta10,*p=a,i;intav=0;int*pmax,*pnmax,*pmin;inttemp,x,flag;for(i=0;ip1)pmax=p,pnmax=p+1;elsepmax=p+1,pnmax=p;for(i=2;i10;i+)if(*pmaxpi)pnmax=pmax;pmax=p+i;/*將pmax指向數(shù)組最大值元素*/elseif(*pnmaxpi)pnmax=p+i;printf(max=%d,nmax=%dn,*pmax,*pnmax)/*輸出最大值與次最大值=/pmin=p;for(i=1;ipi)pmin=p+i;/*將pmin指向數(shù)組最小值元素*7temp=*pmin,*pmin=*pmax,*pmax=temp/*最大值與最小值位置互換=/for(i=0;ivl0;i+)printf(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 同行競爭協(xié)議合同范本
- 2025年度企業(yè)自駕游租車合同二零二五年度專用3篇
- 2025版建筑起重機械租賃價格體系構(gòu)建及質(zhì)量控制合同3篇
- 2025年度個人土地承包權(quán)流轉(zhuǎn)保證金合同范本3篇
- 2025年全球及中國高效微??諝膺^濾器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球陽極氧化再生行業(yè)調(diào)研及趨勢分析報告
- 2024年拉絲工職業(yè)技能競賽理論考試題庫(含答案)
- 2025年度個人租賃房屋租賃合同租賃物損壞賠償條款
- 二零二五年度車庫使用權(quán)抵押貸款合同4篇
- 2025年度個人旅游保險代理合同6篇
- 2024年安全教育培訓(xùn)試題附完整答案(奪冠系列)
- 神農(nóng)架研學(xué)課程設(shè)計
- 文化資本與民族認(rèn)同建構(gòu)-洞察分析
- 2025新譯林版英語七年級下單詞默寫表
- 【超星學(xué)習(xí)通】馬克思主義基本原理(南開大學(xué))爾雅章節(jié)測試網(wǎng)課答案
- 《錫膏培訓(xùn)教材》課件
- 斷絕父子關(guān)系協(xié)議書
- 福建省公路水運工程試驗檢測費用參考指標(biāo)
- 2024年中國工業(yè)涂料行業(yè)發(fā)展現(xiàn)狀、市場前景、投資方向分析報告(智研咨詢發(fā)布)
- 自然科學(xué)基礎(chǔ)(小學(xué)教育專業(yè))全套教學(xué)課件
- 《工程勘察資質(zhì)分級標(biāo)準(zhǔn)和工程設(shè)計資質(zhì)分級標(biāo)準(zhǔn)》
評論
0/150
提交評論