基于RBF改進(jìn)-實(shí)驗(yàn)報(bào)告_第1頁
基于RBF改進(jìn)-實(shí)驗(yàn)報(bào)告_第2頁
基于RBF改進(jìn)-實(shí)驗(yàn)報(bào)告_第3頁
基于RBF改進(jìn)-實(shí)驗(yàn)報(bào)告_第4頁
基于RBF改進(jìn)-實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于RBF的回?zé)嵯到y(tǒng)故障診斷RBF實(shí)驗(yàn)名稱:基于RBF的回?zé)嵯到y(tǒng)故障診斷。RBF神經(jīng)網(wǎng)絡(luò)優(yōu)點(diǎn)及結(jié)構(gòu):盡管BP神經(jīng)網(wǎng)絡(luò)具有很好的非線性映射能力和靈活的網(wǎng)絡(luò)結(jié)構(gòu)等優(yōu)點(diǎn),但存在著收斂速度慢缺點(diǎn)。而RBF神經(jīng)網(wǎng)絡(luò)無論在逼近能力、分類能力和學(xué)習(xí)速度等方面均優(yōu)于BP神經(jīng)網(wǎng)絡(luò)。RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和BP神經(jīng)網(wǎng)絡(luò)類似,都屬于多層前向網(wǎng)絡(luò)。典型的RBF神經(jīng)網(wǎng)絡(luò)由輸入層、隱含層、輸出層組成,其結(jié)構(gòu)如圖一所示。 圖一 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖 其中輸入層由輸入信號(hào)的源節(jié)點(diǎn)組成, 第二層為隱含層,第三層為輸出層,輸出神經(jīng)網(wǎng)絡(luò)對(duì)輸入的響應(yīng)。其中隱含層的激活函數(shù)稱為徑向函數(shù)(RBF),該函數(shù)是一種局部分布的關(guān)于中心點(diǎn)對(duì)稱的非負(fù)

2、非線性函數(shù),實(shí)現(xiàn)了從輸入空間到隱含層空間的非線性變換;而隱含層空間到輸出層空間的變換是線性的,使隱含層的輸出按權(quán)值疊加,得到RBF網(wǎng)絡(luò)的輸出。構(gòu)成RBF的基本思想是:用RBF作為隱含層節(jié)點(diǎn)的“基”構(gòu)成隱含層空間,這樣就可以將輸入向量直接(不通過權(quán)連接)映射到隱含層空間。當(dāng)RBF的中心和寬度確定后,這樣映射關(guān)系就確定了。而隱含層空間到輸出層空間的映射是線性的,即網(wǎng)絡(luò)的輸出是隱含層節(jié)點(diǎn)輸出的線性加權(quán)和。此處的權(quán)即為網(wǎng)絡(luò)可調(diào)參數(shù)。由此可見,從總體上看,網(wǎng)絡(luò)由輸入到輸出的映射是非線性的,然而網(wǎng)絡(luò)輸出對(duì)可調(diào)參數(shù)而言卻是線性的。這樣網(wǎng)絡(luò)的權(quán)就可由線性方程組解出或用RLS方法遞推計(jì)算,從而大大加快學(xué)習(xí)速度并

3、避免局部極小問題。這也是RBF神經(jīng)網(wǎng)絡(luò)的優(yōu)勢存在。 這里描述RBF神經(jīng)網(wǎng)絡(luò)的構(gòu)造;RBF神經(jīng)網(wǎng)絡(luò)的隱含層由一組徑向基函數(shù)構(gòu)成,與每個(gè)隱含層節(jié)點(diǎn)相關(guān)的參數(shù)向量為中心Cj和寬度j。隱含層節(jié)點(diǎn)計(jì)算輸入與中心的歐幾里得范數(shù)作為徑向基函數(shù)的自變量rj2。典型的徑向基函數(shù)有很多,但是我們?cè)诖颂庍x用uj=exp(-rj2/c2)(高斯函數(shù))作為徑向函數(shù);隱含層的輸出按權(quán)值疊加,得到RBF網(wǎng)絡(luò)輸出。假設(shè)RBF神經(jīng)網(wǎng)絡(luò)輸出層、隱含層,、輸出層的節(jié)點(diǎn)數(shù)為I、J、K,當(dāng)輸入為X=(x1,x2,x3,xn)時(shí),隱含層第j個(gè)神經(jīng)元的輸出為: (j=1,2,3,J)其中為高斯基函數(shù)的中心,是一個(gè)I維的向量;寬度也就是高斯

4、基函數(shù)的方差,是一個(gè)數(shù)值量。輸出層由隱含層輸出線性組合而成,其第k個(gè)神經(jīng)元輸出為: (k=1,2,3,K)實(shí)驗(yàn)流程:開始初始化,讀取所要訓(xùn)練的樣本數(shù)據(jù)和設(shè)定的目標(biāo)向量,直接調(diào)用matlab里面的程序,對(duì)隱含層和輸出層各單元的權(quán)值和輸出進(jìn)行求解,在進(jìn)行計(jì)算目標(biāo)值和實(shí)際輸出的偏差E,判斷E是否滿足設(shè)定要求,如果所有誤差都能滿足設(shè)定值,就可以跳出程序,結(jié)束本次計(jì)算;如果不滿足,則要再次進(jìn)行隱含層的誤差計(jì)算,求誤差梯度,進(jìn)行權(quán)值學(xué)習(xí),再次進(jìn)行計(jì)算。進(jìn)行訓(xùn)練成功以后,再將測試樣本數(shù)據(jù)帶入網(wǎng)絡(luò)進(jìn)行測試,得到實(shí)驗(yàn)結(jié)果,根據(jù)實(shí)驗(yàn)結(jié)果判斷故障類型。RBF神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法:而對(duì)于RBF神經(jīng)網(wǎng)絡(luò)主要訓(xùn)練的參數(shù)主要

5、是基函數(shù)的中心、寬度以及隱含層和輸出層的連接權(quán)值。選擇梯度下降法作為簡述過程。首先定義目標(biāo)函數(shù): M表示訓(xùn)練樣本的個(gè)數(shù);代表樣本m的誤差,計(jì)算公式為。梯度下降法得到的更新值為: ,為學(xué)習(xí)系數(shù),也稱為學(xué)習(xí)率。 對(duì)于正交最小二乘法是常用的RBF網(wǎng)絡(luò)學(xué)習(xí)方法,其基本思想是將徑向基函數(shù)的中心選作訓(xùn)練樣本的子集,用誤差下降率答方法衡量每個(gè)樣本對(duì)輸出的貢獻(xiàn),調(diào)整網(wǎng)絡(luò)的結(jié)構(gòu)和中心,知道滿足設(shè)定的靜止條件。MATLAB的神經(jīng)網(wǎng)絡(luò)工具箱中構(gòu)建RBF神經(jīng)網(wǎng)絡(luò)的newrb函數(shù)就是使用正交最小二乘法實(shí)現(xiàn)的,其基本原理是從0個(gè)神經(jīng)網(wǎng)絡(luò)開始訓(xùn)練,通過檢查輸出誤差,使網(wǎng)絡(luò)自動(dòng)增加神經(jīng)元,每次循環(huán)使用,是網(wǎng)絡(luò)產(chǎn)生的最大誤差所

6、對(duì)應(yīng)得輸入向量作為中心,產(chǎn)生一個(gè)新的隱含層神經(jīng)元,然后檢查新網(wǎng)絡(luò)的誤差,重復(fù)此過程直至達(dá)到誤差要求或最大隱含層神經(jīng)元數(shù)為止。使用該函數(shù)構(gòu)造RBF神經(jīng)網(wǎng)絡(luò),需要設(shè)定參數(shù)spread(擴(kuò)展系數(shù)),對(duì)應(yīng)式高斯函數(shù)的寬度j,因此設(shè)計(jì)RBF神經(jīng)網(wǎng)絡(luò)時(shí)需要反復(fù)嘗試不同的spread值,以取得較好的結(jié)果。實(shí)例研究故障模式表格及其征兆變化,如下表一所示:表一:序號(hào)故障模式征兆變化(1,2,3,9)A排油管道逆止閥卡澀稍小不變稍小不變稍小稍小不變不變稍小B排氣管道排氣不暢稍小不變不變不變稍小稍小變大不變不變C排氣管道排氣量過大稍大不變稍大不變稍小稍小變大不變不變D加熱管束污染、結(jié)垢稍小不變不變不變變小變小變大不

7、變稍大E加熱器內(nèi)部水側(cè)短路稍小不變不變不變變小變小變大不變不變F加熱器內(nèi)部管系泄漏變大不變稍大不變變小變小變大變大稍小G疏水不暢稍小不變不變不變稍小稍小變大稍大不變H加熱器旁路閥故障稍大不變不變不變不變不變不變變小變大J疏水器故障稍小不變不變不變不變變小不變不變不變I加熱器滿水稍小不變不變不變稍小變小變大變大不變K除氧器排氣帶水不變不變不變不變不變不變不變變大不變L除氧器自身沸騰稍小稍大變大不變變大不變不變變大不變M運(yùn)行正常不變不變不變不變不變不變不變不變不變首先給出訓(xùn)練參數(shù),如下表二所示:表二:對(duì)應(yīng)故障加熱器特征參數(shù)值123456789A0.250.400.250.50.50.50.250.

8、50.25B0.250.400.500.500.500.500.750.500.50C0.750.600.750.500.500.500.500.500.50D0.250.400.500.500.250.250.500.500.75E0.250.400.500.500.000.001.000.500.50F0.750.600.750.500.250.250.751.000.25G0.250.400.500.500.500.500.750.750.50H0.750.600.500.500.750.750.250.001.00I0.250.400.500.500.750.250.250.500.5

9、0J0.250.400.500.500.250.250.751.000.50K0.500.500.500.500.750.750.251.000.50L0.2500.750.750.501.001.000.251.000.50M0.500.500.500.500.750.750.250.500.50由上述數(shù)據(jù)訓(xùn)練一個(gè)RBF神經(jīng)網(wǎng)絡(luò)然后給出兩組測試數(shù)據(jù),如表三、表四所示:表三:診斷輸入0.5890.4950.6580.50360.81750.750.250.9310.5類型各故障隸度ABCDEFGHIJKLMRBF-0.15550.01970.1308-0.0907-0.0459-0.0103-

10、0.0082-0.04320.05530.25010.90820.08280.1069BP0.00050.00000.00510.00000.00000.01410.00390.00000.00000.00020.90300.07550.0403診斷結(jié)果除氧器排氣帶水表四:診斷輸入0.79340.46840.77900.52800.28850.28310.69790.81980.2247診斷輸出類型各種故障隸屬度ABCDEFGHIJKLMRBF0.0591-0.07670.2833-0.01840.06820.91220.1501-0.03230.0070-0.1371-0.0183-0.00

11、79-0.0892BP0.00220.0000.07750.00000.00160.90710.00620.00020.00010.00050.00230.00130.0001診斷結(jié)果加熱管內(nèi)部管系泄露RBF實(shí)驗(yàn)程序:P=0.25,0.40,0.25,0.50,0.50,0.50,0.25,0.50,0.25; 0.25,0.40,0.50,0.50,0.50,0.50,0.75,0.50,0.50; 0.75,0.60,0.75,0.50,0.50,0.50,0.50,0.50,0.50; 0.25,0.40,0.50,0.50,0.25,0.25,0.50,0.50,0.75; 0.25,

12、0.40,0.50,0.50,0.00,0.00,1.00,0.50,0.50; 0.75,0.60,0.75,0.50,0.25,0.25,0.75,1.00,0.25; 0.25,0.40,0.50,0.50,0.50,0.50,0.75,0.75,0.50; 0.75,0.60,0.50,0.50,0.75,0.75,0.25,0.00,1.00; 0.25,0.40,0.50,0.50,0.75,0.25,0.25,0.50,0.50; 0.25,0.40,0.50,0.50,0.25,0.25,0.75,1.00,0.50; 0.50,0.50,0.50,0.50,0.75,0.75

13、,0.25,1.00,0.50; 0.25,0.75,0.75,0.50,1.00,1.00,0.25,1.00,0.50; 0.50,0.50,0.50,0.50,0.75,0.75,0.25,0.50,0.50;T=1,0,0,0,0,0,0,0,0,0,0,0,0; 0,1,0,0,0,0,0,0,0,0,0,0,0; 0,0,1,0,0,0,0,0,0,0,0,0,0; 0,0,0,1,0,0,0,0,0,0,0,0,0; 0,0,0,0,1,0,0,0,0,0,0,0,0; 0,0,0,0,0,1,0,0,0,0,0,0,0; 0,0,0,0,0,0,1,0,0,0,0,0,0; 0

14、,0,0,0,0,0,0,1,0,0,0,0,0; 0,0,0,0,0,0,0,0,1,0,0,0,0; 0,0,0,0,0,0,0,0,0,1,0,0,0; 0,0,0,0,0,0,0,0,0,0,1,0,0; 0,0,0,0,0,0,0,0,0,0,0,1,0; 0,0,0,0,0,0,0,0,0,0,0,0,1;P=P;T=T;spread=0.82;net=newrbe(P,T,spread);%對(duì)test1進(jìn)行故障診斷p1=0.589,0.495,0.658,0.5036,0.8175,0.75,0.25,0.931,0.5;%對(duì)網(wǎng)絡(luò)進(jìn)行仿真y1=sim(net,p1);type1=

15、y1%對(duì)test2進(jìn)行故障診斷p2=0.7934,0.4684,0.7790,0.5280,0.2885,0.2831,0.6979,0.8198,0.2247;y2=sim(net,p2);type2=y2RBF實(shí)驗(yàn)程序測試實(shí)驗(yàn)結(jié)果如下圖所示:spread=0.5時(shí)的診斷結(jié)果 spread=0.7時(shí)的診斷結(jié)果spread=0.8時(shí)的診斷結(jié)果由實(shí)驗(yàn)數(shù)據(jù)顯示,當(dāng)spread擴(kuò)展系數(shù)的減小,對(duì)應(yīng)故障輸出的概率就越接近1,也就是說,故障診斷的準(zhǔn)確性就越高,精度越高。由此可看,相比與BP神經(jīng)網(wǎng)絡(luò),RBF網(wǎng)絡(luò)有更好的診斷效果。附錄資料:不需要的可以自行刪除c語言典型問題處理方法小結(jié)循環(huán)問題(1)、數(shù)論問

16、題1、求素?cái)?shù) for(i=2;i1,如果它僅有平凡約數(shù)1和a,則我們稱a為素?cái)?shù)(或質(zhì)數(shù))。整數(shù) 1 被稱為基數(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

17、=t; printf(largest common divisor:%dnleast common multiple:%d,b,a1*b1/b);3、求完數(shù) 一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(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ù)寫成幾個(gè)質(zhì)因數(shù)的連乘積,如: 輸入36,則程序輸出36=2*2*3*3 。解一、看似簡單,但要自己完整地寫出來還真不容易!竟然還動(dòng)用了goto語句,

18、正好可以熟悉一下goto語句的用法!main() int a,z,i; clrscr(); scanf(%d,&a);判斷下一個(gè)數(shù)開始有要重新從2開始了。所以用loop語句回到for語句,這是for語句仍從2初始化。從2開始的原則不變,變的是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ù)器來解決每行輸入不同的問題。 else printf(*%d,z); a/=z; goto loop;

19、 解二:main() 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、從鍵盤輸入兩個(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%

20、d/%d-%d%d/%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)近似問題1、書P122習(xí)題4-6注意千萬不要忘記添加#include “math.h”#include math.hmain() float x,j=1,k,s,so; int n; scanf(%f,&x); s=x;

21、so=x+1; for(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ù)列問題二、數(shù)組問題(1)排序問題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); pri

22、ntf(n);注意排序問題:1、須迅速,熟練,無差錯(cuò)經(jīng)常插入在程序中間2、現(xiàn)使用最大數(shù)下沉冒泡法還可以使用最小數(shù)上浮冒泡法3、j控制前面一個(gè)數(shù)和后面一個(gè)數(shù)一一比較。由于是最大數(shù)下沉,i+1后j仍要從0開始。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)

23、二維數(shù)組三、字符或字符串輸入輸出問題(1)字符打印1、打印*此類題的溯源為書P122 4.11(1),其他題都是它的拓展 for (i=1;i=n;i+) 一共要輸出的行數(shù) for(j=1;j=i;j+) 每行要打印的*數(shù) printf(*); printf(n); a、*解題要點(diǎn):此類題關(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、 * * *解題

24、要點(diǎn):在出現(xiàn)空格的時(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=

25、1;j=n-i;j+) 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

26、3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1(2)字符串打印問題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)色部分可以簡寫為綠色部分coutai-1;4、如輸入:ab1 3,;z 輸

27、出:ab1注意點(diǎn):1、= =2、while語句的使用處體會(huì)3、全面考慮問題 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

28、;i+) gets(ai); for(i=0;i3;i+) puts(ai);注意:1、scanf(%d%s,&n,str) 其中%s為字符串格式2、逐個(gè)給字符串賦值的方法見書140頁。 不可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=

29、0,t; clrscr(); 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);編寫程序,將一個(gè)十進(jìn)制正整數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)。 注意類比#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);

30、printf(n);7、輸入一個(gè)字符串,將其中的縮寫形式展開,并輸出展開后的該字符串。所謂展開縮寫形式就是將其中由大小寫字母或數(shù)字構(gòu)成的形如a-f、U-Z、3-8 的形式展開成為 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

31、&ai+1i;k-)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說他不和X比,C說他不和X,Z比。請(qǐng)編程序找出3對(duì)賽手的名單。#inc

32、ludevoid 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歌,問得到3種不同顏色球的可能取法,輸出每種排列的情況。#include#include /在C語言中不用加這句void main()enum colorred ,yellow ,blue,white, black;color pri;int i,j,k,n=0,lo

33、op;for(i=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

34、: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ù),編寫程序,將兩個(gè)字符串串接起來。#includeusing namespace std;void main()int i=0;char a20,b10;gets(a);gets(b);for(i=0;i10;i+)if(ai=0)break;for(int j=0;j10;j+)ai=bj;i+;if(bj=0)break;coutaendl;輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞,單詞之間用空格分開。#includeusing namespace st

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論