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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

c语言ascii码表数字,求教!我想显示数字但是现在显示的却是数字在ASCII码中对应的符...

發布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言ascii码表数字,求教!我想显示数字但是现在显示的却是数字在ASCII码中对应的符... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

以下是程序,可能比較長,主要的問題是比如計算表達式6+3*(9-5)/2-8可得結果是4,但是如果輸入3*4,則得到結果'

#include

using namespace std;

#include

#define OK 1

#define ERROR 0

#define OVERFLOW -2

#define MAXSIZE 100

typedef int Status;

typedef struct

{

char *base;

char *top;

int stacksize;

}SqStack;

Status InitStack(SqStack &S)

{

S.base=new char[100];

if(!S.base) exit(OVERFLOW);

else S.top=S.base;

S.stacksize=MAXSIZE;

return OK;

}

Status Push(SqStack &S,char e)

{

if(S.top-S.base==S.stacksize) return ERROR;

else *S.top++=e;

return OK;

}

char GetTop(SqStack S)

{

if(S.top!=S.base)

return *(S.top-1);

else exit(ERROR);

}

Status Pop(SqStack &S,char &e)

{

if(S.top==S.base) return ERROR;

else {--S.top;e=*S.top;}

return OK;

}

Status In(char c)

{

if(c>='0'&&c<='9') return 0;

else if(c=='+'||c=='-'||c=='*'||c=='/'||c=='('||c==')'||c=='#') return 1;

else exit(ERROR);

}

int Precede(char a,char b)//a為棧頂元素,b為讀到的元素//令a等于b為7,a大于b為8,a小于b為9

{

if(b=='+')

{

if(a=='('||a=='#') return(9);

else return(8);

}

if(b=='-')

{

if(a=='('||a=='#') return(9);

else return(8);

}

if(b=='*')

{

if(a=='*'||a=='/'||a==')') return(8);

else return(9);

}

if(b=='/')

{

if(a=='*'||a=='/'||a==')') return(8);

else return(9);

}

if(b=='(') return(9);

if(b==')')

{

if(a=='(') return(7);

return(8);

}

if(b=='#')

{

if(a=='#') return(7);

else return(8);

}

}

int Operate(int a,char theta,int b)

{

if(theta=='+') return (a+b-'0');

else if(theta=='-') return (a-b+'0');

else if(theta=='*') return ((a-'0')*(b-'0')+'0');

else if(theta=='/') return ((a-'0')/(b-'0')+'0');

}

char EvaluateExpression(char s[])

{

char x,theta,ch;

char a,b,r;

int i;

SqStack OPTR,OPND;

InitStack(OPTR);

InitStack(OPND);

Push(OPTR,'#');

for(i=0;i

{

ch=s[i];

if(!(r=In(ch))){Push(OPND,ch);}

else

{

switch(Precede(GetTop(OPTR),ch))

{

case 9://a小于b為9

Push(OPTR,ch);

break;

case 8://a大于b為8//應該是從此處開始無法將字符輸入到OPTR中

Pop(OPTR,theta);

Pop(OPND,b);

Pop(OPND,a);

Push(OPND,Operate(a,theta,b));

i=i-1;

break;

case 7://a等于b為7

Pop(OPTR,x);

break;

}

}

}

return GetTop(OPND);

}

int main()

{

cout<

cout<

char e[100];

gets(e);

char result;

result=EvaluateExpression(e);

cout<

cout<

cout<

return 0;

}

總結

以上是生活随笔為你收集整理的c语言ascii码表数字,求教!我想显示数字但是现在显示的却是数字在ASCII码中对应的符...的全部內容,希望文章能夠幫你解決所遇到的問題。

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