日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言1e12怎么识别,求大神帮助词法分析,当输入第一个1.2e12时可以输出,当时输入第二个1.2e12时就不能输出了,万分感谢,还有不能识别x=7*8+9中的+9,...

發(fā)布時間:2025/3/15 编程问答 17 豆豆

#include

#include

#include

#include

char?prog[80];?//存放所有輸入字符

char?token[8];?//存放詞組

char?ch;?//單個字符

int?syn,p,m,n;//syn:種別編碼

double?sum;

int?count;

int?Signal;?????????//是否帶正負(fù)號(0不帶,1負(fù)號)

int?xiaoshu;??? ??//是否是小數(shù)

double?isxiaoshu;???????//小數(shù)

int?zhishu; ??????????//是否是指數(shù)

int?index;????????????//指數(shù)冪

int?fushu;???????//是否帶負(fù)號

double?temp;

int?temp2;

void?scanner();

char?*rwtab[6]={“function”,”if”,”then”,”while”,”do”,”endfunc”};

int?main()

{

p=0;

count=0;

xiaoshu=0;

index=0;

int?b,a;

FILE?*fp;

printf(“以文件輸入請按1!\n”);

printf(“以鍵盤輸入請按2!\n”);

scanf(“%d”,&a);

if(a==1)

{

if((fp=fopen(“D:\111.txt”,”r”))==NULL)

{

printf(“Failure?to?open?111.txt!\n”);

exit(0);

}

fscanf(fp,”%s”,prog);

fclose(fp);

}

else?if(a==2)

{

printf(“\n?Please?input?string:\n”);

do{

ch=getchar();

prog[p++]=ch;

}while(ch!=””#””);

}

p=0;

do{

scanner();

switch(syn)

{

printf(“以文件輸出請按1!\n”);

printf(“以屏幕輸出請按2!\n”);

scanf(“%d”,&b);

if(b==1)

{

case?11:??if(xiaoshu==0)

{

fprintf(fp,”%2d,%8d”,syn,(int)sum);

//printf(“(%2d,%8d)\n”,syn,(int)sum);

break;

}

else?if(zhishu==1)

{

fprintf(fp,”(%2d,%10.5e)\n”,syn,sum);

//printf(“(%2d,%10.5e)\n”,syn,sum);

zhishu=0;

xiaoshu=0;

break;

}

else?if(xiaoshu==1)

{

fprintf(fp,”(%2d,%8.4f)\n”,syn,sum);

//printf(“(%2d,%8.4f)\n”,syn,sum);

xiaoshu=0;

break;

}

case?-1:

fprintf(fp,”input?error\n”);

printf(“input?error\n”);

break;

default:

fprintf(fp,”(%2d,%8s)\n”,syn,token);

//printf(“(%2d,%8s)\n”,syn,token);

}

}while(syn!=0);

return?0;

}

else?if(b==2)

{

case?11:??if(xiaoshu==0)

{

printf(“(%2d,%8d)\n”,syn,(int)sum);

break;

}

else?if(zhishu==1)

{

printf(“(%2d,%10.4e)\n”,syn,sum);

zhishu=0;

xiaoshu=0;

break;

}

else?if(xiaoshu==1)

{

printf(“(%2d,%8.4f)\n”,syn,sum);

xiaoshu=0;

break;

}

case?-1:

printf(“input?error\n”);

break;

default:

printf(“(%2d,%8s)\n”,syn,token);

}

while(syn!=0);

return?0;

}

void?scanner()

{

sum=0;

isxiaoshu=0;

m=0;

for(n=0;n<8;n++)

token[n]=NULL;

ch=prog[p++];

while(ch==””?“”||ch==””\n””||ch==””\t””)

ch=prog[p++];

if(((ch>=””a””)&&(ch<=””z””))||((ch>=””A””)&&(ch<=””Z””)))

{

while(((ch>=””a””)&&(ch<=””z””))||((ch>=””A””)&&(ch<=””Z””))||((ch>=””0″”)&&(ch<=””9″”)))

{

token[m++]=ch;

ch=prog[p++];

}

token[m++]=””\0″”;

p–;

syn=10;

for(n=0;n<6;n++)

if(strcmp(token,rwtab[n])==0)

{

syn=n+1;

break;

}

}

else

if((ch>=””0″”)&&(ch<=””9″”))

{

Num:

if(Signal==1)

{

token[m++]=””-“”;

}

while((ch>=””0″”)&&(ch<=””9″”))

{

sum=sum*10+ch-“”0″”;

ch=prog[p++];

}

if(ch==””.””)

{

xiaoshu=1;

ch=prog[p++];

while((ch>=””0″”)&&(ch<=””9″”))

{??????????????????????????????????//pow(x,y)計算x的y次冪

temp=(ch-“”0″”)*pow(0.1,++count);

isxiaoshu=isxiaoshu+temp;

ch=prog[p++];

}

sum=sum+isxiaoshu;

}

if(ch==””e””||ch==””E””)

{

zhishu=1;

ch=prog[p++];

if(ch==””-“”)

{

fushu=1;

ch=prog[p++];

}

while((ch>=””0″”)&&(ch<=””9″”))

{???????????????????????????????//指數(shù)

index=index*10+ch-“”0″”;

ch=prog[p++];

}

if(fushu)

sum=sum*pow(0.1,index);

else

sum=sum*pow(10,index);

}

if(Signal==1)

{

sum=-sum;

Signal=0;

}

p–;

syn=11;

}

else

switch(ch)

{

case?“”

m=0;

token[m++]=ch;

ch=prog[p++];

if(ch==””=””)

{

syn=21;

token[m++]=ch;

}

else?if(ch==””=””)

{

syn=21;

token[m++]=ch;

}

else

{

syn=20;

p–;

}

break;

case?“”>””:

m=0;

token[m++]=ch;

ch=prog[p++];

if(ch==””=””)

{

syn=24;

token[m++]=ch;

}

else

{

syn=23;

p–;

}

break;

case?“”=””:

m=0;

token[m++]=ch;

ch=prog[p++];

if(ch==””=””)

{

syn=25;

token[m++]=ch;

}

else

{

syn=18;

p–;

}

break;

case?“”+””:

temp2=prog[p];

if((temp2>=””0″”)&&(temp2<=””9″”))

{

Signal=2;

ch=prog[p++];

goto?Num;

}

syn=13;

token[m++]=ch;

break;

case?“”-“”:

temp2=prog[p];

if((temp2>=””0″”)&&(temp2<=””9″”))

{

Signal=1;

ch=prog[p++];

goto?Num;

}

syn=14;

token[m++]=ch;

break;

case?“”*””:

syn=15;

token[m++]=ch;

break;

case?“”/””:

syn=16;

token[m++]=ch;

break;

case?“”;””:

syn=26;

token[m++]=ch;

break;

case?“”(“”:

syn=27;

token[m++]=ch;

break;

case?“”)””:

syn=28;

token[m++]=ch;

break;

case””#””:

syn=0;

token[m++]=ch;

break;

default:

syn=-1;

}

}

總結(jié)

以上是生活随笔為你收集整理的C语言1e12怎么识别,求大神帮助词法分析,当输入第一个1.2e12时可以输出,当时输入第二个1.2e12时就不能输出了,万分感谢,还有不能识别x=7*8+9中的+9,...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 五月婷婷狠狠干 | 亚洲一区二区久久 | 欧美一级二级片 | 亚洲天堂影院 | 91在线观看 | 国产三级91 | 久久你懂的 | 久久综合九色综合欧美狠狠 | 国产精品人人爽 | 很黄很污的视频 | 男女猛烈无遮挡免费视频 | 久久22 | 正在播放一区 | 久久久av电影 | 日韩资源站 | 懂色中文一区二区在线播放 | 日韩精品2区 | 懂色视频在线观看 | 欧美伦理影院 | 麻豆视屏 | 丰满少妇av| 久久中文视频 | 97插插插 | 国产观看| 欧美做爰爽爽爽爽爽爽 | 国产精品美女www爽爽爽视频 | 日本人妻伦在线中文字幕 | 国产美女裸体无遮挡免费视频 | xx色综合 | 亚洲清纯国产 | 午夜电影天堂 | 福利久久久 | 操操操日日日 | 欧美视频色| 黄色com| 亚洲综合第一 | 日韩av高清 | 色成人综合网 | 134vcc影院免费观看 | 久久免费激情视频 | 99热免费 | 日韩字幕在线 | 黄色3级视频 | 日本久久中文字幕 | 欧美在线视频一区 | 亚洲 欧美 激情 另类 | 国产伦精品一区二区三区精品 | 婷婷网五月天 | 国产裸体舞一区二区三区 | 久久国产精品久久久 | 国产稀缺真实呦乱在线 | 欧美乱色 | 日日爱夜夜爱 | 美女视频一区二区 | 亚洲一级黄色大片 | 黄色大片黄色大片 | 国产色91 | 国产原创视频在线观看 | 国产 日韩 欧美 制服丝袜 | 日韩一卡二卡在线 | 成人久久网站 | 国产99久久久国产精品成人免费 | 一区二区伦理 | 精品人伦一区二区三区 | 91精品一区二区三区四区 | 男人手机天堂 | 国产精品毛片一区二区 | 少女忠诚电影高清免费 | 色悠久久综合 | 免费中文字幕在线观看 | 夏晴子在线 | 美女被c出水 | 欧美黄色图片 | 亚洲国产精品成人午夜在线观看 | 青青在线视频观看 | 丁香婷婷在线观看 | 少妇一区二区三区 | 国产精品正在播放 | 国产极品久久久 | av福利院 | 在线免费黄色片 | 在线观看免费黄网站 | 精品国产三级a∨在线 | 日本久久久久久 | 日本视频www | 久草网站 | 欧美丰满美乳xxⅹ高潮www | 91视频一区| 亚洲午夜精品久久久 | 欧美h视频在线观看 | 天天操天天干天天操 | 国产jjizz一区二区三区视频 | 美女黄污网站 | 少妇无套内谢免费视频 | 国产91在线免费观看 | 日韩欧美一区二区区 | www.中文字幕在线观看 | a v在线视频 |