![基于MATLAB實(shí)現(xiàn)對(duì)結(jié)構(gòu)動(dòng)力響應(yīng)的幾種算法的驗(yàn)證_第1頁(yè)](http://file4.renrendoc.com/view/74b0a11ff63e4faf779dd48b65652355/74b0a11ff63e4faf779dd48b656523551.gif)
![基于MATLAB實(shí)現(xiàn)對(duì)結(jié)構(gòu)動(dòng)力響應(yīng)的幾種算法的驗(yàn)證_第2頁(yè)](http://file4.renrendoc.com/view/74b0a11ff63e4faf779dd48b65652355/74b0a11ff63e4faf779dd48b656523552.gif)
![基于MATLAB實(shí)現(xiàn)對(duì)結(jié)構(gòu)動(dòng)力響應(yīng)的幾種算法的驗(yàn)證_第3頁(yè)](http://file4.renrendoc.com/view/74b0a11ff63e4faf779dd48b65652355/74b0a11ff63e4faf779dd48b656523553.gif)
![基于MATLAB實(shí)現(xiàn)對(duì)結(jié)構(gòu)動(dòng)力響應(yīng)的幾種算法的驗(yàn)證_第4頁(yè)](http://file4.renrendoc.com/view/74b0a11ff63e4faf779dd48b65652355/74b0a11ff63e4faf779dd48b656523554.gif)
![基于MATLAB實(shí)現(xiàn)對(duì)結(jié)構(gòu)動(dòng)力響應(yīng)的幾種算法的驗(yàn)證_第5頁(yè)](http://file4.renrendoc.com/view/74b0a11ff63e4faf779dd48b65652355/74b0a11ff63e4faf779dd48b656523555.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 基于 MATLAB 實(shí)現(xiàn)對(duì)結(jié)構(gòu)動(dòng)力響應(yīng)的幾種算法的驗(yàn)證算例 首先,本文給出一算例, 結(jié)構(gòu)在外力諧振荷載 P(t) = P0 sint 作用下,分別利用理論解法,杜哈梅積分, Wilson- 法求出該結(jié)構(gòu)的位移時(shí)程反應(yīng)。其中:m = 3.5103 kg , P0 = 1.0104 N , k =1.3584515107 ,=0.05 ,=52.3s1 ,=62.3s1 , = 1-2 =62.222 ,初始位移、速度v(0) = 0 ,v(0) = 0 ;算法驗(yàn)證 2.1 理論解法 運(yùn)動(dòng)方程為: mv+cv+kv=sin由線(xiàn)性代數(shù)解出其理論解為:由于初始位移v(0) =0 ,v(0) =0 ;
2、則: v(t ) =1.052698986.230cos62.222t 18.106sin 62.222t +2.012808757 1146sin 52.3t 325.829cos52.3t 可以用 MATLAB 進(jìn)行編程分析,畫(huà)圖位移時(shí)程圖,詳細(xì)程序見(jiàn)附錄。 2.2Wilson-法 Wilson-法是Wilson于1966年基于線(xiàn)性加速度法的基礎(chǔ)上提出一種無(wú)條件收斂的計(jì)算方法。該方法假定在時(shí)程步長(zhǎng)內(nèi),體系的加速度反應(yīng)按線(xiàn)性變化。對(duì)于地震持續(xù)時(shí)間內(nèi)的每一個(gè)微小時(shí) 段 ,從第一時(shí)段開(kāi)始到最后一個(gè)時(shí)段,逐一的重復(fù)以下計(jì)算步驟,即得到結(jié)構(gòu)地震反應(yīng)的全過(guò)程。下面以第i+1時(shí)段()為例:2.3 杜哈梅
3、積分 杜哈梅積分在考慮阻尼的情況是: 可以用 MATLAB 進(jìn)行編程分析,畫(huà)圖位移時(shí)程圖,詳細(xì)程序見(jiàn)附錄。 3. 位移時(shí)程反應(yīng)對(duì)比分析利用 MATLAB 將理論解法,杜哈梅積分, Wilson- 法求解出來(lái)的位移時(shí)程反應(yīng)畫(huà)在同一張圖 中,進(jìn)行比較分析。 從圖中可以看出,以上三種方法得出來(lái)的位移時(shí)程曲線(xiàn)基本吻合,誤差基本保持在 5%以?xún)?nèi),所以以上幾種方法在求解相關(guān)問(wèn)題上都具有一定的作用效力。結(jié)論 本文通過(guò)一個(gè)簡(jiǎn)單的單自由度系統(tǒng)動(dòng)力分析算例(僅作位移分析,其它分析雷同),基于 MATLAB,將理論解法,杜哈梅積分法,逐步積分法(本文采用 Wilson- 法)進(jìn)行相互驗(yàn)證,從最后的位移分析圖對(duì)比上,
4、可以很好的看出三種方法均能很好的彼此驗(yàn)證,從而說(shuō)明了三種方法在相關(guān)問(wèn)題上的作用效力。附錄:MATLAB 源程序%理論解,杜哈梅積分,Wilson-法程序clc; clear h1=figure(8); set( h1, color,w) %理論解法t=0:0.01:1; v=1.05269898*10(-4)*exp(-3.115*t).*(6.230*cos(62.222*t)-18.106*sin(62.222*t)+2.012808757*10(-6)*(1146*sin(52.3*t)-325.829*cos(52.3*t); plot(t,v,k) hold on %杜哈梅積分法aa
5、=1;%輸入時(shí)間長(zhǎng)度bb=0.01;%輸入精度t=bb:bb:aa; t1=t; theta=52.3;%輸入荷載頻率w=62.3;%輸入自振頻率m=3500;%輸入質(zhì)量p0=10000;%輸入荷載幅值p0=p0*ones(1,aa/bb); p=p0.*sin(theta*t);%荷載函數(shù)for i=1:(aa/bb) for j=1:i canshu1(j)=p(j)/(m*w)*bb*sin(w*(t(i)-t1(j);%杜哈梅積分中的被積函數(shù)end y(i)=sum(canshu1);%位移值end for i=1:aa/bb-1 v1(i)=(y(i+1)-y(i)/bb;%計(jì)算速度
6、end for i=1:(aa/bb-2) a(i)=(v1(i+1)-v1(i)/bb;%計(jì)算加速度end hold on plot(t,y,r)%畫(huà)位移圖hold on %Wilson-法dt=0.01; ct=1.4;ndzh=100; k=13584515; c=21805; t=0:dt:ndzh*dt; ag=10000*sin(52.3*t); ag1=ag(1:ndzh); ag2=ag(2:ndzh+1); agtao=ct*(ag2-ag1); wyi1=0; sdu1=0; jsdu1=0; wyimt=0; sdumt=0; jsdumt=0; for i=1:ndzh
7、 kxin=k+(3/(ct*dt)*c+(6/(ct*ct*dt*dt)*m; %kxin為新的剛度dpxin=-m*agtao(i)+m*(6/(ct*dt)*sdu1+3*jsdu1)+c*(3*sdu1+ct*dt/2*jsdu1); %新的力增量dxtao=kxindpxin; dtjsdu=6*dxtao/(ct*(ct2*dt2)-6*sdu1/(ct*ct*dt)-(3/ct)*jsdu1; jsdu=jsdu1+dtjsdu; dtsdu=(dt/2)*(jsdu+jsdu1); sdu=sdu1+dtsdu; dtwyi=dt*sdu1+(1/3)*dt2*jsdu1+(d
8、t2/6)*jsdu; wyi=wyi1+dtwyi; jsdu=-m(m*ag2(i)+c*sdu+k*wyi); % 調(diào)整加速度wyi1=wyi; sdu1=sdu; jsdu1=jsdu; wyimt=wyimt wyi; sdumt=sdumt sdu; jsdumt=jsdumt jsdu; end plot(t,-wyimt/3000,b); hold off legend(fontsize9fontname 黑體 理論解,fontsize9fontname黑體 杜哈梅積分法,fontsize9fontname黑體 wilson-theta法)%基于雙線(xiàn)性滯回模型的單自由度體系的地
9、震能量分析程序 %質(zhì)量57041kg,阻尼36612 Ns/m,初始剛度2350000N/m,剛度折減 系數(shù)0.2,屈服位移0.01m,采用ELCENTRO波%參數(shù)替換直接在下面修改,然后運(yùn)行clc format long; m=57041;%質(zhì)量ug=importdata(ELCENTRO.txt);%地震波txt 文件ug=ug/100; P=-m*ug; num=size(P,1); c=36612;%阻尼k1=2350000;%初始剛度k2=k1*0.2; a=zeros(1,num);v=zeros(1,num);x=zeros(1,num);%加速度 速度 位移Ei=zeros(1
10、,num);Ek=zeros(1,num);Ed=zeros(1,num);Eh=zeros(1,num);%輸入能 動(dòng)能 阻尼耗能 滯回耗能EI=zeros(1,num);EK=zeros(1,num);ED=zeros(1,num);EH=zeros(1,num);%累積的各種能量time=zeros(1,num); a(1)=P(1)/m; hfl=zeros(1,num); h=0.02;%地震波采樣間隔Xy=0.01;%屈服位移pxmax=0; nxmax=0; pd=0;%雙線(xiàn)型滯回模型折線(xiàn)的標(biāo)識(shí),0表示彈性,1表示正向彈塑性,2表示反向彈性,-1表示反向彈塑性,-2表示正向彈性f
11、or ii=1:num if pd=0 %彈性階段 k=k1; if x(ii)Xy pd=1; b=(a(ii)-a(ii-1)/6/h a(ii-1)/2 v(ii-1) x(ii-1)-Xy;% 拐點(diǎn)處理 d=roots(b); for j=1:length(d) if isreal(d(j)=1 dth=d(j); end end hp=h-dth; vp=v(ii-1)+a(ii-1)*dth+(a(ii)-a(ii-1)*dth2/h/2); ap=a(ii-1)+(a(ii)-a(ii-1)*dth/h; pp=m*ap+c*vp+k1*Xy; kd=k2+3*c/hp+6*m/
12、hp/hp; dtpd=P(ii+1)-pp+m*(6*vp/hp+3*ap)+c*(3*vp+hp*ap/2); dtx=dtpd/kd; dtv=3*dtx/hp-3*vp-hp*ap/2; x(ii)=Xy+dtx; v(ii)=vp+dtv; dtf=k2*dtx; hfl(ii)=k1*Xy+dtf; a(ii)=(P(ii)-hfl(ii+1)-c*v(ii)/m; elseif x(ii)-Xy pd=-1; b=(a(ii)-a(ii-1)/6/h a(ii-1)/2 v(ii-1) x(ii-1)+Xy;% 拐點(diǎn)處理 d=roots(b); for j=1:length(d)
13、 if isreal(d(j)=1 dth=d(j); end end hp=h-dth; vp=v(ii-1)+a(ii-1)*dth+(a(ii)-a(ii-1)*dth2/h/2); ap=a(ii-1)+(a(ii)-a(ii-1)*dth/h; pp=m*ap+c*vp-k1*Xy; kd=k2+3*c/hp+6*m/hp/hp; dtpd=P(ii+1)-pp+m*(6*vp/hp+3*ap)+c*(3*vp+hp*ap/2); dtx=dtpd/kd; dtv=3*dtx/hp-3*vp-hp*ap/2; x(ii)=-Xy+dtx; v(ii)=vp+dtv; dtf=k2*d
14、tx; hfl(ii)=-k1*Xy+dtf; a(ii)=(P(ii)-hfl(ii)-c*v(ii)/m; end end i f pd=1 %正向彈塑性 k=k2; if v(ii)pxmax pd=1; b=(a(ii)-a(ii-1)/6/h a(ii-1)/2 v(ii-1) x(ii-1)-pxmax;% 拐點(diǎn)處理 d=roots(b); for j=1:length(d) if isreal(d(j)=1 dth=d(j); end end hp=h-dth;vp=v(ii-1)+a(ii-1)*dth+(a(ii)-a(ii-1)*dth2/h/2); ap=a(ii-1)+
15、(a(ii)-a(ii-1)*dth/h; pp=m*ap+c*vp+k1*Xy+k2*(pxmax-Xy); kd=k2+3*c/hp+6*m/hp/hp; dtpd=P(ii+1)-pp+m*(6*vp/hp+3*ap)+c*(3*vp+hp*ap/2); dtx=dtpd/kd; dtv=3*dtx/hp-3*vp-hp*ap/2; x(ii)=pxmax+dtx; v(ii)=vp+dtv; dtf=k2*dtx; hfl(ii)=k1*Xy+k2*(pxmax-Xy)+dtf; a(ii)=(P(ii)-hfl(ii)-c*v(ii)/m; elseif x(ii)0 pd=-2;
16、b=(a(ii)-a(ii-1)/2/h a(ii-1) v(ii-1);% 拐點(diǎn)處理 d=roots(b); for j=1:length(d) if isreal(d(j)=1 dth=d(j); end end hp=h-dth; xp=x(ii-1)+v(ii-1)*dth+a(ii-1)*dth2/2+(a(ii)-a(ii-1)*dth3/h/6; ap=a(ii-1)+(a(ii)-a(ii-1)*dth/h; pp=m*ap+c*0-k1*Xy+k2*(xp+Xy); kd=k1+3*c/hp+6*m/hp/hp; dtpd=P(ii+1)-pp+m*(6*0/hp+3*ap)
17、+c*(3*0+hp*ap/2); dtx=dtpd/kd; dtv=3*dtx/hp-3*0-hp*ap/2; x(ii)=xp+dtx; v(ii)=0+dtv; dtf=k1*dtx; hfl(ii)=-k1*Xy+k2*(xp+Xy)+dtf; a(ii)=(P(ii)-hfl(ii)-c*v(ii)/m; nxmax=x(ii); end end if pd=-2 %正向彈性 k=k1; if x(ii)(nxmax+2*Xy) pd=1; b=(a(ii)-a(ii-1)/6/h a(ii-1)/2 v(ii-1) x(ii-1)-nxmax-2*Xy;% 拐點(diǎn)處理 d=roots
18、(b); for j=1:length(d) if isreal(d(j)=1 dth=d(j); end end hp=h-dth; vp=v(ii-1)+a(ii-1)*dth+(a(ii)-a(ii-1)*dth2/h/2); ap=a(ii-1)+(a(ii)-a(ii-1)*dth/h; pp=m*ap+c*vp+(k1*Xy+nxmax*k2+Xy*k2); kd=k2+3*c/hp+6*m/hp/hp; dtpd=P(ii+1)-pp+m*(6*vp/hp+3*ap)+c*(3*vp+hp*ap/2); dtx=dtpd/kd; dtv=3*dtx/hp-3*vp-hp*ap/2
19、; x(ii)=nxmax+2*Xy+dtx; v(ii)=vp+dtv; dtf=k2*dtx; hfl(ii)=k1*Xy+nxmax*k2+Xy*k2+dtf; a(ii)=(P(ii)-hfl(ii)-c*v(ii)/m; end end i f ii=num break; end kd=k+3*c/h+6*m/h/h; dtpd=P(ii+1)-P(ii)+m*(6*v(ii)/h+3*a(ii)+c*(3*v(ii)+h*a(ii)/2); dtx=dtpd/kd; dtv=3*dtx/h-3*v(ii)-h*a(ii)/2; x(ii+1)=x(ii)+dtx; v(ii+1)=
20、v(ii)+dtv; dtf=k*dtx; hfl(ii+1)=hfl(ii)+dtf; a(ii+1)=(P(ii+1)-hfl(ii+1)-c*v(ii+1)/m; Ei(ii+1)=-m*ug(ii+1)*v(ii+1)*h; Ed(ii+1)=c*v(ii+1)2*h; Ek(ii+1)=m*a(ii+1)*v(ii+1)*h; Eh(ii+1)=hfl(ii+1)*v(ii+1)*h; for jj=1:num-1 EI(jj+1)=EI(jj)+Ei(jj+1); ED(jj+1)=ED(jj)+Ed(jj+1); EK(jj+1)=EK(jj)+Ek(jj+1); EH(jj+1
21、)=EH(jj)+Eh(jj+1); end end for j=1:num time(j)=h*(j-1); end fid=fopen(EL波彈塑性各種能.txt,wt); %輸出結(jié)果到EL波彈塑性各種能.txt fprintf(fid,%g %g %g %g%gn,time;EI;ED;EH;EK); fclose(fid); plot(time,EI); hold on plot(time,ED); hold on plot(time,EK); hold on plot(time,EH); 附錄資料:不需要的可以自行刪除c語(yǔ)言典型問(wèn)題處理方法小結(jié)循環(huán)問(wèn)題(1)、數(shù)論問(wèn)題1、求素?cái)?shù) fo
22、r(i=2;i1,如果它僅有平凡約數(shù)1和a,則我們稱(chēng)a為素?cái)?shù)(或質(zhì)數(shù))。整數(shù) 1 被稱(chēng)為基數(shù),它既不是質(zhì)數(shù)也不是合數(shù)。整數(shù) 0 和所有負(fù)整數(shù)既不是素?cái)?shù),也不是合數(shù)。 2、求最大公約數(shù)和最小公倍數(shù)a、 if(ab) t=a; a=b; b=t; for(i=a;i=1;i-) if(a%i=0&b%i=0) break; printf(largest common divisor:%dn,i); printf(least common multiple:%dn,(a*b)/is);b、輾轉(zhuǎn)相除法求解 a1=a; b1=b; while(a%b!=0) t=a%b; a=b; b=t; print
23、f(largest common divisor:%dnleast common multiple:%d,b,a1*b1/b);3、求完數(shù) 一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱(chēng)為“完數(shù)”。 例如:6的因子為1、2、3,而6123,因此6是“完數(shù)”。for(a=1;a=1000;a+) s=0; for(i=1;i=a) break; if(s=a) printf(%dt,a);注意S=0所放的位置 4、分解質(zhì)因數(shù) 將一個(gè)整數(shù)寫(xiě)成幾個(gè)質(zhì)因數(shù)的連乘積,如: 輸入36,則程序輸出36=2*2*3*3 。解一、看似簡(jiǎn)單,但要自己完整地寫(xiě)出來(lái)還真不容易!竟然還動(dòng)用了goto語(yǔ)句,正好可以熟悉一下g
24、oto語(yǔ)句的用法!main() int a,z,i; clrscr(); scanf(%d,&a);判斷下一個(gè)數(shù)開(kāi)始有要重新從2開(kāi)始了。所以用loop語(yǔ)句回到for語(yǔ)句,這是for語(yǔ)句仍從2初始化。從2開(kāi)始的原則不變,變的是a的值。 loop: for(z=2;z=a;z+)判斷是否為質(zhì)數(shù)for(i=2;i=z;i+) if(z%i=0) break;判斷是否為a的質(zhì)因數(shù) if(z=i) if(a%z=0) k+; if(k=1) printf(%d=%d,a1,z);用計(jì)數(shù)器來(lái)解決每行輸入不同的問(wèn)題。 else printf(*%d,z); a/=z; goto loop; 解二:main(
25、) int n, k=2, isfirst=1; printf(Input n=); scanf(%d,&n); while(k=n) if(n%k=0) if(isfirst) printf(%d=%d, n, k); isfirst=0; else printf(*%d,k); n/=k; else k+; printf(n);5、從鍵盤(pán)輸入兩個(gè)整數(shù),輸出這兩個(gè)整數(shù)的商的小數(shù)點(diǎn)后所有1000位整數(shù) for(i=1;i=2;i-) if(fm%i=0&fz%i=0) fz/=i; fm/=i; z=fz/fm; fzx=fz%fm; if(fzx=0) printf(%d%d/%d-%d%d
26、/%d=%dn,z1,fz1,fm1,z2,fz2,fm2,z); else if(z=0) printf(%d%d/%d-%d%d/%d=%d/%dn,z1,fz1,fm1,z2,fz2,fm2,fzx,fm); else printf(%d%d/%d-%d%d/%d=%d%d/%dn,z1,fz1,fm1,z2,fz2,fm2,z,fzx,fm);(2)近似問(wèn)題1、書(shū)P122習(xí)題4-6注意千萬(wàn)不要忘記添加#include “math.h”#include math.hmain() float x,j=1,k,s,so; int n; scanf(%f,&x); s=x; so=x+1; f
27、or(n=1;fabs(s-so)1e-6;n+) for(k=1;k1e-6) x=(x1+x2)/2; f=x*x*x+4*x*x-10;可以用/*if(f*f10) x2=x; else x1=x; printf(%fn,x);(3)枚舉法(4)數(shù)列問(wèn)題二、數(shù)組問(wèn)題(1)排序問(wèn)題1、從小到大排序main() int a10,i,j,t; for(i=0;i10;i+) scanf(%d,&ai); for(i=1;i10;i+) for(j=0;jaj+1) t=aj+1;aj+1=aj;aj=t; for(i=0;i10;i+) printf(%d ,ai); printf(n);注意
28、排序問(wèn)題:1、須迅速,熟練,無(wú)差錯(cuò)經(jīng)常插入在程序中間2、現(xiàn)使用最大數(shù)下沉冒泡法還可以使用最小數(shù)上浮冒泡法3、j控制前面一個(gè)數(shù)和后面一個(gè)數(shù)一一比較。由于是最大數(shù)下沉,i+1后j仍要從0開(kāi)始。4、i控制這樣的操作一共要做多少次5、注意i j的控制次數(shù)2、從大到小排序main()現(xiàn)使用最大數(shù)上浮冒泡法還可使用最小數(shù)下沉冒泡法 int a10,i,j,t; for(i=0;i10;i+) scanf(%d,&ai); for(i=1;i=i;j-) if(ajaj-1) t=aj-1; aj-1=aj; aj=t; for(i=0;i10;i+) printf(%d ,ai);(2)二維數(shù)組三、字符或
29、字符串輸入輸出問(wèn)題(1)字符打印1、打印*此類(lèi)題的溯源為書(shū)P122 4.11(1),其他題都是它的拓展 for (i=1;i=n;i+) 一共要輸出的行數(shù) for(j=1;j=i;j+) 每行要打印的*數(shù) printf(*); printf(n); a、*解題要點(diǎn):此類(lèi)題關(guān)鍵在于找到每行要打印的個(gè)數(shù)和行數(shù)的關(guān)系。此題j=i j=n-i+1b、* for(i=1;i=n;i+) 一共要輸出的行數(shù) for(j=1;j=n-i;j+) 控制空格數(shù) printf( ); for(k=1;k=i;k+) 每行要打印的*數(shù) printf(*); printf(n); c、 * * *解題要點(diǎn):在出現(xiàn)空格的
30、時(shí)候,在找到每行要打印的*個(gè)數(shù)和行數(shù)的關(guān)系后,還應(yīng)找到空格和行數(shù)的關(guān)系,分不同的參數(shù)進(jìn)行循環(huán)。此題k=i j=n-i j=i-1k=n-i+1d、* * for(i=1;i=n;i+) for(j=1;j=n-i;j+) printf( ); for(k=1;k=2*i-1;k+) printf(*); printf(n); * *e、 * * * for(i=1;i=n-1;i+) for(j=1;j=i;j+) printf( ); for(k=1;k=2*(n-1-i)+1;k+) printf(*); printf(n); for(i=1;i=n;i+) for(j=1;j=n-i;j
31、+) printf( ); for(k=1;k=2*i-1;k+) printf(*); printf(n); * * * * * *2、打印9*9乘法表解題要點(diǎn):注意尋找行與列的規(guī)律。i*ji代表列j代表行for(i=1;i=9;i+) for(j=1;j=9;j+) printf(%-3d ,i*j); 注意輸出格式的控制 printf(n); 3、九九乘法表1 2 3 4 5 6 7 8 92 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 27 9 18 27 36 45 54 63 72 814、楊暉三角形11 11 2 11 3 3 11 4 6
32、4 11 5 10 10 5 11 6 15 20 15 6 1(2)字符串打印問(wèn)題for(i=1;i=7;i+) ai1=1; aii=1; for(i=3;i=7;i+) for(j=2;j=i-1;j+) aij=ai-1j-1+ai-1j; gets(a); puts(a); for(i=1;i0;j-) aj=aj-1; a0=t; for(k=0;k=a&ai=z) ai-=32; puts (a);3、逆序輸出gets (a); c=strlen(a); for(i=0;i=0;i-) 藍(lán)色部分可以簡(jiǎn)寫(xiě)為綠色部分coutai-1;4、如輸入:ab1 3,;z 輸出:ab1注意點(diǎn):
33、1、= =2、while語(yǔ)句的使用處體會(huì)3、全面考慮問(wèn)題 3,;zgets(a); while(a0= ) for(i=0;ai!=0;i+) ai=ai+1; for(i=0;ai!=0;i+)if(ai= &ai+1!= ) printf(n); else if(ai= &ai+1= ) for(k=i;ak!=0;k+) ak+1=ak+2; i-; elseprintf(%c,ai);5、輸入3個(gè)字符串,按從小到大排序輸出這3個(gè)字符串。 使用一個(gè)兩維數(shù)組貯存多個(gè)字符串char a8181;注意:如何使用一個(gè)兩維數(shù)組貯存多個(gè)字符串 int i,j; for(i=0;i3;i+) gets
34、(ai); for(i=0;i3;i+) puts(ai);注意:1、scanf(%d%s,&n,str) 其中%s為字符串格式2、逐個(gè)給字符串賦值的方法見(jiàn)書(shū)140頁(yè)。 不可for(i=0;ai!=0;i+)3、stri=stri-A+10;4、pow函數(shù)5、任何進(jìn)制轉(zhuǎn)為十進(jìn)制的方法6、輸入一個(gè)整數(shù)n和一個(gè)字符串str,計(jì)算并輸出n進(jìn)制數(shù)str的值。 如輸入:7 16則輸出:13(16)7=(13)10如輸入:16 3A則輸出:58(3A)16=(58)10#include stdio.h#include math.hmain() char str81; int n,i,s=0,t; clrs
35、cr(); scanf(%d%s,&n,str); for(i=0;stri!=0;i+) if(stri=A) stri=stri-A+10; else stri=stri-0; t=strlen(str); for(i=0;stri!=0;i+) s+=strt-i-1*pow(n,i); printf(%d,s);編寫(xiě)程序,將一個(gè)十進(jìn)制正整數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)。 注意類(lèi)比#include main()char a20;int x,i=0,j;clrscr();scanf(%d,&x);while(x) if(x%16=10&x%16=0;j-)printf(%c,aj);printf(n)
36、;7、輸入一個(gè)字符串,將其中的縮寫(xiě)形式展開(kāi),并輸出展開(kāi)后的該字符串。所謂展開(kāi)縮寫(xiě)形式就是將其中由大小寫(xiě)字母或數(shù)字構(gòu)成的形如a-f、U-Z、3-8 的形式展開(kāi)成為 abcdef 、UVWXYZ 、345678,若出現(xiàn)f-a、A-7、9-5等形式則不予理睬。例如: 輸入:qwe246e-hA-d$-%4-7A-Dz-xp-R4-0輸出:qwr246efghA-d$-%4567ABCDz-xp-R4-0main() char a81; int i,c,s,k,t; gets(a); for(i=0;ai!=0;i+) if(ai=-) if(ai-1=A&ai+1=a&ai+1=0&ai+1i;k-
37、)ak+c-2=ak;as-1+c-2+1=0; for(;i=t;i+) ai=ai-1+1; puts(a);補(bǔ)充:循環(huán):求:a+aa+aaa+.的值#includevoid main()int a,n,i=1,sn=0,tn=0;coutinput a and nan;while(i=n)tn=tn+a;sn+=tn;a*=10;i+;coutthe answer is snendl;兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出3人。甲隊(duì)為A,B,C;已對(duì)是X,Y,Z;已經(jīng)抽簽決定比賽名單。有人向隊(duì)員大廳比賽的名單。A說(shuō)他不和X比,C說(shuō)他不和X,Z比。請(qǐng)編程序找出3對(duì)賽手的名單。#includevoid
38、main()char i,j,k;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)coutA-i B-j C-kendl;枚舉口袋中有紅,黃,藍(lán),白,黑5種顏色的球若干。每次從口袋中任意取出3歌,問(wèn)得到3種不同顏色球的可能取法,輸出每種排列的情況。#include#include /在C語(yǔ)言中不用加這句void main()enum colorred ,yellow ,blue,white, black;color pri;int i,j,k,n=0,loop;for(i=
39、red;i=black;i+)for(j=red;j=black;j+)if(i!=j)for (k=red;k=black;k+)if(k!=i)&(k!=j)n+;coutsetw(3)n; /setw是輸出格式的限定for(loop=1;loop=3;loop+)switch(loop)case 1:pri=color(i);break;case 2:pri=color(j);break;case 3:pri=color(k);break;default:break;switch(pri)case red:coutsetw(8)red;break;case yellow:coutsetw(8)yellow;break;case blue:coutsetw(8)blue;break;case white:coutsetw(8)white;break;case black:coutsetw(8)black;break;default:break;coutendl;couttotal:nendl;數(shù)組:不用strcat函數(shù),編寫(xiě)程序,將兩個(gè)字符串串接起來(lái)。#includeusing namespace std;voi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 宜賓市荒山土地承包合同范本
- 動(dòng)漫作品授權(quán)合作合同范本
- 企業(yè)用人正式合同范例
- 淺析京劇發(fā)聲與民歌唱法美聲唱法的關(guān)系
- 加盟押金店合同范例
- 2025年度市政道路施工建設(shè)投資合作協(xié)議
- MW光伏電站項(xiàng)目EC總承包合同范本
- 三方合租協(xié)議合同范本
- 制砂機(jī)租賃合同范本
- 保險(xiǎn)內(nèi)勤銷(xiāo)售合同范例
- 餐飲服務(wù)與管理(高職)PPT完整全套教學(xué)課件
- 成人學(xué)士學(xué)位英語(yǔ)1000個(gè)高頻必考詞匯匯總
- 2023年菏澤醫(yī)學(xué)專(zhuān)科學(xué)校單招綜合素質(zhì)模擬試題及答案解析
- 常見(jiàn)食物的嘌呤含量表匯總
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)同步練習(xí)(含答案)
- SB/T 10752-2012馬鈴薯雪花全粉
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ))試題庫(kù)含答案解析
- 濕型砂中煤粉作用及檢測(cè)全解析
- 積累運(yùn)用表示動(dòng)作的詞語(yǔ)課件
- 機(jī)動(dòng)車(chē)登記證書(shū)英文證書(shū)模板
- 第8課《山山水水》教學(xué)設(shè)計(jì)(新人教版小學(xué)美術(shù)六年級(jí)上冊(cè))
評(píng)論
0/150
提交評(píng)論