編譯原理詞法分析程序?qū)崿F(xiàn)實(shí)驗(yàn)報(bào)告_第1頁(yè)
編譯原理詞法分析程序?qū)崿F(xiàn)實(shí)驗(yàn)報(bào)告_第2頁(yè)
編譯原理詞法分析程序?qū)崿F(xiàn)實(shí)驗(yàn)報(bào)告_第3頁(yè)
編譯原理詞法分析程序?qū)崿F(xiàn)實(shí)驗(yàn)報(bào)告_第4頁(yè)
編譯原理詞法分析程序?qū)崿F(xiàn)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)一 詞法分析程序?qū)崿F(xiàn)一、實(shí)驗(yàn)內(nèi)容選取無(wú)符號(hào)數(shù)的算術(shù)四則運(yùn)算中的各類(lèi)單詞為識(shí)別對(duì)象,要求將其中的各個(gè)單詞識(shí)別出來(lái)。輸入:由無(wú)符號(hào)數(shù)和+,*,/, ( , ) 構(gòu)成的算術(shù)表達(dá)式,如1.5e+2100。輸出:對(duì)識(shí)別出的每一單詞均單行輸出其類(lèi)別碼(無(wú)符號(hào)數(shù)的值暫不要求計(jì)算)。二、 設(shè)計(jì)部分因?yàn)樾枰x取無(wú)符號(hào)數(shù)的算術(shù)四則運(yùn)算中的各類(lèi)單詞為識(shí)別對(duì)象,要求將其中的各個(gè)單詞識(shí)別出來(lái),而其中的關(guān)鍵則為無(wú)符號(hào)數(shù)的識(shí)別,它不僅包括了一般情況下的整數(shù)和小數(shù),還有以e為底數(shù)的指數(shù)運(yùn)算,其中關(guān)于詞法分析的無(wú)符號(hào)數(shù)的識(shí)別過(guò)程流程圖如下:goto 1:goto 2:三、 源程序代碼部分#include #include#

2、include #define max 100#define unsignednumber 1#define plus 2#define subtract 3#define multiply 4#define divide 5#define leftbracket 6#define rightbracket 7#define inefficaciouslabel 8#define finish 111int count=0;int class;void storetype();int type100;char store20=0;void showstrfile();/已經(jīng)將要識(shí)別的字符串存在

3、文件a中void output(int a,char *p1,char *p2);/字符的輸出過(guò)程int sign(char *p);/+-*/整體識(shí)別過(guò)程int unsignednum(char *p);/是否適合合法的正整數(shù)09int legalcharacter(char *p);/是否是合法的字符:sign(p)|unsignednum(p)|e|.void distinguishsign(char *p);/+-*/具體識(shí)別過(guò)程void typydistinguish();/字符的識(shí)別過(guò)程void showtype();/將類(lèi)別碼存儲(chǔ)在type100中,為語(yǔ)法分析做準(zhǔn)備void sh

4、owstrfile()/已經(jīng)將要識(shí)別的字符串存在文件a中file *fp_s;char ch;if(fp_s=fopen(a.txt,r)=null)printf(the file cannot open!); exit(0);elsech=fgetc(fp_s);while(ch!=eof)putchar(ch);ch=fgetc(fp_s);printf(n);void storestr()/將文件中的字符串存儲(chǔ)到數(shù)組storei file *fp=fopen(a.txt,r);char str;int i=0;while(!feof(fp)fscanf(fp,%c,&str);if(st

5、r=?)storei=0;break;storei=str;i+;storei=0;void showstore()int i;for (i=0;storei!=0;i+) printf(%c,storei);printf(n);void output(int a,char *p1,char *p2) printf(%3st%dt%st,class,a,value);while(p1=p2)printf(%c,*p1);p1+;printf(n);int sign(char *p)char ch=*p;if(ch=+|ch=-|ch=*|ch=/|ch=(|ch=)return 1;elser

6、eturn 0;int unsignednum(char *p)char ch=*p;if(0=ch&ch=9)return 1;elsereturn 0;int legalcharacter(char *p)char ch=*p;if(sign(p)|unsignednum(p)|ch=e|ch=.)return 1;else return 0;void distinguishsign(char *p) int class;char ch=*p;switch(ch) case +: output(plus,p,p);typecount+=plus;break; case -: output(

7、subtract,p,p);typecount+=subtract;break; case *: output(multiply,p,p);typecount+=multiply;break; case /: output(divide,p,p);typecount+=divide;break; case (: output(leftbracket,p,p);typecount+=leftbracket;break; case ): output(rightbracket,p,p);typecount+=rightbracket;break; default: break; void typy

8、distinguish() printf(詞法開(kāi)始,分析結(jié)果如下:n); char *p; p=&store0; while(*p!=0) if(sign(p) distinguishsign(p+); continue; else if(unsignednum(p)|*p=.) char *p1=p;if(unsignednum(p)while(unsignednum(p)p+;if(*p=0) output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;continue;else if(*p=e)p+;if(unsignednum(p

9、)while(unsignednum(p)p+;output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;continue;else if(*p=+|*p=-)p+;while(unsignednum(p)p+;output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;continue;else output(inefficaciouslabel,p1,-p);printf(輸入的這個(gè)符號(hào)是不合法的!);break;typecount+=inefficaciouslabel;p+

10、;continue;else if(*p=.)p+;while(unsignednum(p)p+;if(*p=0) output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;continue;else if(*p=e)p+;if(unsignednum(p)while(unsignednum(p)p+;output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;continue;else if(*p=+|*p=-)p+;if(unsignednum(p)while(unsigned

11、num(p)p+;output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;continue;else output(inefficaciouslabel,p1,-p);printf(輸入的這個(gè)符號(hào)是不合法的! /n);break;typecount+=inefficaciouslabel;p+;continue;elseoutput(inefficaciouslabel,p1,-p);printf(輸入的這個(gè)符號(hào)是不合法的!因?yàn)樗暮竺婕炔皇?9也不是“+”或者“-);break;/1.5e*2這樣的字符串不是無(wú)符號(hào)數(shù) typecou

12、nt+=inefficaciouslabel;p+;continue;else output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;continue;else output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;continue;if(*p=.)p+;if(unsignednum(p)p+;while(unsignednum(p)p+;if(*p=0) output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;

13、continue;else if(*p=e)p+;if(unsignednum(p)while(unsignednum(p)p+; output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;continue;else if(*p=+|*p=-)p+;while(unsignednum(p)p+;output(unsignednumber,p1,-p);typecount+=unsignednumber;p+;continue;else output(unsignednumber,p1,-p);typecount+=unsignednum

14、ber;p+;continue;else output(inefficaciouslabel,p1,-p); printf(輸入的這個(gè)符號(hào)是不合法的!);break;typecount+=inefficaciouslabel;p+;continue; else if(*p=e) output(inefficaciouslabel,p,p);break; typecount+=inefficaciouslabel; printf(輸入的這個(gè)符號(hào)是不合法的!); p+; continue; printf(nn詞法分析完畢!);void showtype()/將類(lèi)別碼存儲(chǔ)在type100中,為語(yǔ)法分

15、析做準(zhǔn)備 printf(n用類(lèi)別碼表示輸入的字符如下:n);int i;printf(n);for(i=0;typei!=finish;i+)printf(%d,typei);printf(nn); void main() /詞法分析部分 storestr(); showstore(); typydistinguish(); typecount=finish; showtype(); 四、 實(shí)驗(yàn)結(jié)果正確的結(jié)果:錯(cuò)誤的結(jié)果:輸入的字符串中有1.5e*2因?yàn)閷?shí)驗(yàn)是以文件的形式進(jìn)行讀取的所以,在讀取不合法的過(guò)程中只是將存在project 中的a.txt 中的內(nèi)容改變改為1.5e*2+100*555實(shí)

16、驗(yàn)結(jié)果如下:結(jié)果分析:對(duì)于正確的結(jié)果,我以二元式的形式輸出,包括他的值和他的類(lèi)別碼,其中將類(lèi)別碼存放在另外的一個(gè)數(shù)組中,為了在實(shí)驗(yàn)二中的語(yǔ)法識(shí)別打下基礎(chǔ)。對(duì)于錯(cuò)誤的結(jié)果,我選擇的是跳出這個(gè)程序,并且能過(guò)分析出錯(cuò)的原因。改進(jìn)設(shè)計(jì):(1)字符串是以文件的形式輸出的,連續(xù)重復(fù)輸入存在局限性(2)能夠跳過(guò)錯(cuò)誤的字符繼續(xù)識(shí)別剩下的字符實(shí)驗(yàn)一擴(kuò)展李曉萌 088330一、實(shí)驗(yàn)內(nèi)容:試對(duì)基礎(chǔ)實(shí)驗(yàn)識(shí)別的單詞種類(lèi)進(jìn)行擴(kuò)充,構(gòu)造識(shí)別以下單詞的詞法分析程序。語(yǔ)言中具有的單詞包括五個(gè)有代表性的關(guān)鍵字begin、end、if、then、else;標(biāo)識(shí)符;整型常數(shù);六種關(guān)系運(yùn)算符;一個(gè)賦值符和四個(gè)算術(shù)運(yùn)算符。二、 設(shè)計(jì)部分

17、基礎(chǔ)實(shí)驗(yàn)和擴(kuò)展實(shí)驗(yàn)的差別在基礎(chǔ)實(shí)驗(yàn)的關(guān)鍵在于無(wú)符號(hào)數(shù)的判斷,但是,擴(kuò)展實(shí)驗(yàn)的關(guān)鍵在于關(guān)鍵字和標(biāo)識(shí)符的識(shí)別。關(guān)于關(guān)鍵字的識(shí)別,通過(guò)和題目中給出的幾個(gè)關(guān)鍵字的對(duì)比,若相同則可以確定是關(guān)鍵字,否則,就可自動(dòng)確定為標(biāo)識(shí)符具體實(shí)現(xiàn)的流程圖如下:三、 源程序代碼部分#include #include #define begin 1#define end 2#define if 3#define then 4#define else 5# define id 6# define int 7# define lt 8# define le 9# define eq 10# define ne 11# defi

18、ne gt 12# define ge 13#define is 14#define pl 15#define mi 16#define mu 17#define di 18char *keyword5=begin,end,if,then,else; int i=0,j=0,k=0,t=0;/搜索指示器 char ch;/存放最新讀入的原程序字符 char strtoken20;/存放構(gòu)成單詞符號(hào)的字符串 char * chr_form100;/字符表 char * int_form100;/常數(shù)表 char form1000; int q=0; int temp; void getchar(

19、)/將下一個(gè)字符讀入ch中,搜索指示器前移一字符位 ch=formk; k+; void getbc()/檢查ch中的字符是否為空白,若是則調(diào)用getchar直至ch中進(jìn)入 /一個(gè)非空白字符 while(ch= ) /k-; getchar(); void concat()/將ch中的字符連接到strtoken之后, strtokeni=ch; i+; bool isletter()/判斷ch中的字符是否為字符 if(ch=a)|(ch=a) return (1); else return(0); bool isdigit()/判斷ch中的字符是否為數(shù)字 /k-; if(ch)=0) retu

20、rn (1); else return (0); int reserve()/對(duì)strtoken中的字符串查找保留字表,若它是一個(gè)保留字 /則返回它的編碼,否則返回-1值 for(int q=0;q5;q+) if(strcmp(keywordq,strtoken)=0) return q; if(q=4) return -1; void retract()/將搜索指示器回調(diào)一個(gè)字符位置,將ch置為空白字符 k-; ch=null; char*insertid()/將strtoken中的標(biāo)識(shí)符插入符號(hào)表,返回符號(hào)表的指針 chr_formj=strtoken; j+; return chr_f

21、orm0; char * insertconst()/將strtoken中的常數(shù)插入常數(shù)表,返回常數(shù)表指針 int_formt=strtoken; t+; return int_form0; int code; / void output(int a,char *p1,char *p2)coutt類(lèi)別碼(class):at 單詞值(value):;while(p1=p2)cout*p1;p1+;coutendl; void analyze() getchar(); getbc(); /cout此處沒(méi)有錯(cuò)endl; if(isletter() while(isletter()|isdigit()

22、 concat(); getchar(); /cout此處沒(méi)有錯(cuò)endl; retract(); code=reserve(); switch(code) case 0:cout需檢測(cè)的的單詞:strtoken 類(lèi)別碼為: begin endl;break; case 1:cout需檢測(cè)的的單詞:strtoken 類(lèi)別碼為: endendl;break; case 2:cout需檢測(cè)的的單詞:strtoken 類(lèi)別碼為: ifendl;break; case 3:cout需檢測(cè)的的單詞:strtoken 類(lèi)別碼為: thenendl;break; case 4:cout需檢測(cè)的的單詞:strt

23、oken 類(lèi)別碼為: elseendl;break; default: cout需檢測(cè)的的單詞:strtoken 類(lèi)別碼為: idendl;break; else if(isdigit() while(isdigit()|ch=.) concat(); getchar(); retract(); cout需檢測(cè)的的單詞:strtoken 類(lèi)別碼為: intendl; else switch (ch) case +: cout需檢測(cè)的的單詞:+ 類(lèi)別碼為: plendl;break; case-: cout需檢測(cè)的的單詞:- 類(lèi)別碼為: miendl;break; case*: cout需檢測(cè)的

24、的單詞:* 類(lèi)別碼為: muendl;break; case/: cout需檢測(cè)的的單詞:/ 類(lèi)別碼為: diendl;break; case:getchar(); if(ch=) cout需檢測(cè)的的單詞:= 類(lèi)別碼為: isendl;break; else retract(); cout需檢測(cè)的的單詞為非法輸入!endl;break; case=:cout需檢測(cè)的的單詞:= 類(lèi)別碼為: eq:getchar();switch(ch) case=: cout= 類(lèi)別碼為: geendl;break; default:retract(); cout 類(lèi)別碼為: gtendl;break; cas

25、e:getchar(); switch(ch) case=:cout需檢測(cè)的的單詞:= 類(lèi)別碼為: le:cout需檢測(cè)的的單詞: 類(lèi)別碼為: neendl;break; default:retract(); cout需檢測(cè)的的單詞: 類(lèi)別碼為: ltendl;break; while(kq) for(int p=0;p50;p+) strtokenp=0; i=0; analyze(); void main() cout請(qǐng)輸入一段程序,以#號(hào)結(jié)束:endl; form0=cin.get(); for( q=1;formq-1!=#;q+) formq=cin.get(); if(formq=

26、#) cout你輸入的程序段為n; cout.write(form,q); break; coute(自己添加的)e-e+t| e-t|tt-t*f| t/f|ff-(e)|i該表1是根據(jù)下一頁(yè)的圖畫(huà)出來(lái)的:+-*/()i#e t f0s4s51231s6s7acc2r3s8s9r3r33r6r6r6r6r6r64s4s510235r8r8r8r8r8r86s4s51137s4s51238s4s5139s4s51410s6s7s1511r1r1s8s9r1r112r2r2s8s9r2r213r4r4r4r4r4r414r5r5r5r5r5r515r7r7r7r7r7r7表1(2)對(duì)實(shí)驗(yàn)一得字符

27、串1.5e+2+100*555進(jìn)行驗(yàn)證:經(jīng)過(guò)自己的推理所得的表2步驟狀態(tài)棧符號(hào)棧輸入串a(chǎn)ctiongoto10#i+i*is5205#i+i*i#r8goto0,f=3303#f+i*i#r6goto0,t=2402#t+i*i#r3goto0,e=1501#e+i*i#s66016#e+i*i#s570165#e+i*i#r8goto0,f=380163#e+f*i#r6goto0,t=290162#e+t*i#s81001628#e+t*i#s511016285#e+t*i#r8goto0,f=312016283#e+t*f#r6goto0,t=21301611#e+t#r1goto0,e

28、=11401#e#acc成功!表2程序設(shè)計(jì):(1)設(shè)置輸入緩沖區(qū)用結(jié)構(gòu)buf實(shí)現(xiàn)輸入字符的存儲(chǔ),包括值和類(lèi)型的存儲(chǔ)(為實(shí)驗(yàn)三做準(zhǔn)備),為后續(xù)的語(yǔ)法分析和詞法分析做準(zhǔn)備(2)狀態(tài)棧state 作為狀態(tài)棧,存儲(chǔ)歸約和移進(jìn)過(guò)程狀態(tài)的變化(3)符號(hào)棧symbol作為符號(hào)棧,棧頂?shù)姆?hào)不斷地進(jìn)行著歸約和移進(jìn)的動(dòng)作(4)運(yùn)用c語(yǔ)言編寫(xiě)了相應(yīng)的程序進(jìn)行移近和歸約以及接受的動(dòng)作,需要注意的是,在規(guī)約的過(guò)程中不僅需要彈出數(shù)目確定的字符,還要有相應(yīng)的字符入棧注意:在實(shí)驗(yàn)設(shè)計(jì)過(guò)程中,從讀取存有算數(shù)字符的文件開(kāi)始,就獲得了每一個(gè)算術(shù)表達(dá)式的字符個(gè)數(shù)(除去”-”的剩余部分)并存儲(chǔ)在數(shù)組vnum中三、 源程序代碼實(shí)驗(yàn)代碼

29、部分將會(huì)在實(shí)驗(yàn)三給出四、 實(shí)驗(yàn)結(jié)果見(jiàn)實(shí)驗(yàn)三實(shí)驗(yàn)三 語(yǔ)義分析程序?qū)崿F(xiàn)李曉萌 088330一、實(shí)驗(yàn)內(nèi)容:通過(guò)設(shè)計(jì)、編制、調(diào)試一個(gè)簡(jiǎn)單的語(yǔ)義處理分析程序,實(shí)現(xiàn)對(duì)實(shí)驗(yàn)一和實(shí)驗(yàn)二所得單詞和語(yǔ)句的語(yǔ)義信息簡(jiǎn)單處里,進(jìn)一步掌握語(yǔ)義處理的內(nèi)容和簡(jiǎn)單方法。二、設(shè)計(jì)部分(1)需要將實(shí)驗(yàn)一的1.5e+2+100*555中的每一個(gè)無(wú)符號(hào)數(shù)相應(yīng)的算出最終的結(jié)果:如:1500.000000+2.000000+100.000000*555.000000(2)在進(jìn)行歸約的過(guò)程中,不僅僅是彈出需要進(jìn)行歸約的字符,還要進(jìn)行值的傳遞和計(jì)算計(jì)算(3)設(shè)計(jì)思路:1 calculate_unsignedfigure(char *p1,c

30、har *p2) 函數(shù)能過(guò)準(zhǔn)確的計(jì)算出無(wú)符號(hào)的值2 quarternary_out(int a1,double a2,double a3,double a4)語(yǔ)義分析四元式輸出3 store_resuctionmax在語(yǔ)法分析的過(guò)程中,把歸約過(guò)程都標(biāo)記在這個(gè)數(shù)組中& unsignedfigure在計(jì)算的過(guò)程中也已經(jīng)把相應(yīng)的算數(shù)字符的值存儲(chǔ)在這個(gè)數(shù)組4調(diào)用相應(yīng)的歸約過(guò)程,利用unsignedfigure存儲(chǔ)的值進(jìn)行計(jì)算,最后獲得運(yùn)算結(jié)果結(jié)果可以對(duì)實(shí)驗(yàn)二得標(biāo)進(jìn)一步完善步驟狀態(tài)棧符號(hào)棧輸入串a(chǎn)ctiongoto語(yǔ)義處理生成中間代碼10#i+i*is5205#i+i*i#r8goto0,f=3i1.v

31、alue=1500.000000303#f+i*i#r6goto0,t=2f1.value=1500.000000402#t+i*i#r3goto0,e=1t1.value=1500.000000501#e+i*i#s6e1.value=1500.0000006016#e+i*i#s570165#e+i*i#r8goto0,f=3i2.value=100.00000080163#e+f*i#r6goto0,t=2f2.value=100.00000090162#e+t*i#s8t2.value=100.0000001001628#e+t*i#s511016285#e+t*i#r8goto0,f

32、=3i3.value=555.00000012016283#e+t*f#r6goto0,t=2f3.value=100.000000(*,t2,f3,q1)1301611#e+t#r1goto0,e=1q1.value=55500.000000(+,q1,e1,q2)1401#e#acc成功!q2.value=55650.000000由此表可以看出,最終的結(jié)果因該是55650.000000三、 源程序代碼#include #include#include #define max 100#define unsignednumber 1#define plus 2#define subtract

33、3#define multiply 4#define divide 5#define leftbracket 6#define rightbracket 7#define inefficaciouslabel 8#define finish 111/詞法分析定義的部分int count=0;/記錄類(lèi)型的13145int count1=0;/詞法分析結(jié)果緩沖表int class;int type100;char store20=0;double result=0.0;/詞法分析的緩沖區(qū)struct aaint type;double value;buf1000;struct aa oth;/*_

34、語(yǔ)法分析定義的部分_*/char input20;/存放類(lèi)別碼轉(zhuǎn)化的字符char store_grammar2010=0;/用來(lái)存放語(yǔ)法分析產(chǎn)生式char v_t10,v_n10;char avt8=+,-,*,/,(,),i,#;char gvn3=e,t,f;int vnnum,vtnum,statenum=16;int vnum10;int grammarnum;typedef structchar *base;char *top;symbolstack;typedef structint *base;int *top;statestack;statestack state;symbol

35、stack symbol;/*_詞法分析子函數(shù)部分_*/bool tag=false;void storetype();void showstrfile();void output(int a,char *p1,char *p2);int sign(char *p);int unsignednum(char *p);int legalcharacter(char *p);void distinguishsign(char *p);void typydistinguish();void showtype();/語(yǔ)法分析子函數(shù)void changstyle();/*_語(yǔ)義分析的相關(guān)函數(shù)_*/dou

36、ble calculatestackmax,*p_trcal;/定義計(jì)算數(shù)值用的計(jì)算棧和指向它的首地址的指針double unsignedfiguremax;/存放每個(gè)無(wú)符號(hào)數(shù)的值int num2=0;int num3=0;int num4=0;int num5=0;boolmark=true;int store_resuctionmax;/語(yǔ)義分析時(shí)的歸約動(dòng)作所用產(chǎn)生式代號(hào)棧/語(yǔ)法分析slr1表int action168=0,0,0,0,104,0,105,0,106,107,0,0,0,0,-1,-1,53,53,108,109,0,53,0,53,56,56,56,56,0,56,0,5

37、6,0,0,0,0,104,0,105,0,58,58,58,58,0,58,58,58,0,0,0,0,104,0,105,0,0,0,0,0,104,0,105,0,0,0,0,0,104,0,105,0,0,0,0,0,104,0,105,0,106,107,0,0,0,115,0,0,51,51,108,109,0,51,51,51,52,52,108,109,0,52,0,52,54,54,54,54,0,54,54,54,55,55,55,55,0,55,0,55,57,57,57,57,0,57,0,57;int goto163=1,2,3,0,0,0,0,0,0,0,0,0,1

38、0,2,3,0,0,0,0,11,3,0,12,3,0,0,13,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,;void showstrfile()file *fp_s;char ch;if(fp_s=fopen(a.txt,r)=null)printf(the file cannot open!); exit(0);elsech=fgetc(fp_s);while(ch!=eof)putchar(ch);ch=fgetc(fp_s);printf(n);void storestr() file *fp=fopen(a.txt,r);char str;

39、int i=0;while(!feof(fp)fscanf(fp,%c,&str);if(str=?)storei=0;break;storei=str;i+;storei=0;void showstore()int i;for (i=0;storei!=0;i+) printf(%c,storei);printf(n);void output(int a,char *p1,char *p2) printf(%3st%dt%st,class,a,value);while(p1=p2)printf(%c,*p1);p1+;/printf(n);double calculate_decimalpart(char *p1,char *p2)char *p_1

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論