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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言字符型计算器,求用c语言编程四则混合运算计算器?

發布時間:2024/9/27 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言字符型计算器,求用c语言编程四则混合运算计算器? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#include

#include

#include

char token[61]; /*存放表達式字符串的數組*/

int n=0;

void error(void) /*報告錯誤函數*/

{

printf("ERROR!\n");

exit(1);

}

void match(char expected) /*檢查字符匹配的函數*/

{

if(token[n]==expected)

token[++n]=getchar();

else error();

}

double term(void); /*計算乘除的函數*/

double factor(void); /*處理括號和數字的函數*/

double exp(void) /*計算加減的函數*/

{

double temp=term();

while((token[n]=='+')||(token[n]=='-'))

switch(token[n])

{

case'+':match('+');

temp+=term();

break;

case'-':match('-');

temp-=term();

break;

}

return temp;

}

double term(void)

{

double div;

double temp=factor();

while((token[n]=='*')||(token[n]=='/'))

switch(token[n])

{

case'*':match('*');

temp*=factor();

break;

case'/':match('/');

div=factor();

if(div==0) /*處理除數為零的情況*/

{

printf("The divisor is zero!\n");

exit(1);

}

temp/=div;

break;

}

return temp;

}

double factor(void)

{

double temp;

char number[61];

int i=0;

if(token[n]=='(')

{

match('(');

temp=exp();

match(')');

}

else if(isdigit(token[n])||token[n]=='.')

{

while(isdigit(token[n])||token[n]=='.') /*將字符串轉換為浮點數*/

{

number[i++]=token[n++];

token[n]=getchar();

}

number[i]='\0';

temp=atof(number);

}

else error();

return temp;

}

main()

{

double result;

FILE *data=fopen("61590_4.dat","at");

if(data==NULL)

data=fopen("61590_4.dat","wt");

if(data==NULL)

return 0;

token[n]=getchar();

result=exp();

if(token[n]=='\n')

{

token[n]='\0';

printf("%s=%g\n",token,result);

fprintf(data,"%s=%g\n",token,result);

}

else error();

fclose(data);

return 0;

getch();

}

我覺得這個就可以.我試了!

總結

以上是生活随笔為你收集整理的c语言字符型计算器,求用c语言编程四则混合运算计算器?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。