分给我吧,我发你邮箱。我的邮箱为546261804/ *** .com,收到付我分。我还有其它两个经典版本,都是国外的。
意外的是你的邮箱已被停用了,就是不能用了,不能收了。
有事找我 *** 546261804
//***************************************************************************
#includestring.h
#includectype.h
#includemalloc.h // malloc()等
#includelimits.h // INT_MAX等
#includestdio.h // EOF(=^Z或F6),NULL
#includestdlib.h // atoi()
#includeio.h // eof()
#includemath.h // floor(),ceil(),abs()
#includeprocess.h // exit()
#includeiostream.h // cout,cin
// 函数结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
// #define OVERFLOW -2 因为在math.h中已定义OVERFLOW的值为3,故去掉此行
typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如OK等
typedef int Boolean; // Boolean是布尔类型,其值是TRUE或FALSE
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
//***************************************************************************
//栈的储存结构
typedef struct{
//运算符栈
char *base;
char *top;
int stacksize;
}SqStack1;
typedef struct{
//运算数栈
float *base;
float *top;
int stacksize;
}SqStack2;
//***************************************************************************
//以下是运算符栈的基本操作函数
Status InitStack(SqStack1 S){
//初始化一个栈
S.base=(char *)malloc(STACK_INIT_SIZE*sizeof(char));
if(!S.base)exit(OVERFLOW);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}//InitStack
Status DestroyStack(SqStack1 S){
//销毁栈S
free(S.top);
free(S.base);
return OK;
}//DestroyStack
char GetTop(SqStack1 S){
//若栈不空,则返回S的栈顶元素,并返回OK;否则返回ERROR
if(S.top==S.base)return ERROR;
return *(S.top-1);
}//Gettop
Status Push(SqStack1 S,char e){
//插入元素e为新的栈顶元素
if(S.top-S.base=S.stacksize){
//栈满,追加储存空间
S.base=(char *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(char));
if(!S.base)exit(OVERFLOW);
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return OK;
}//Push
Status Pop(SqStack1 S,char e){
//若栈不空,则删除S的栈顶元素,用e返回其值;并返回OK;否则返回ERROR
if(S.top==S.base)return ERROR;
e=*(--S.top);
return OK;
}//Pop
//***************************************************************************
//以下是运算数栈的基本操作函数
Status InitStack(SqStack2 S){
//初始化一个栈
S.base=(float *)malloc(STACK_INIT_SIZE*sizeof(float));
if(!S.base)exit(OVERFLOW);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}//InitStack
Status DestroyStack(SqStack2 S){
//销毁栈S
free(S.top);
free(S.base);
return OK;
}//DestroyStack
float GetTop(SqStack2 S){
//若栈不空,则返回S的栈顶元素,并返回OK;否则返回ERROR
if(S.top==S.base)return ERROR;
return *(S.top-1);
}//Gettop
Status Push(SqStack2 S,float e){
//插入元素e为新的栈顶元素
if(S.top-S.base=S.stacksize){
//栈满,追加储存空间
S.base=(float *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(float));
if(!S.base)exit(OVERFLOW);
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return OK;
}//Push
Status Pop(SqStack2 S,float e){
//若栈不空,则删除S的栈顶元素,用e返回其值;并返回OK;否则返回ERROR
if(S.top==S.base)return ERROR;
e=*(--S.top);
return OK;
}//Pop
//***************************************************************************
//以下是相关的运算符判断函数
char Precede(char A,char B){
//比较运算符A, B的优先关系,A,B的范围仅限于'+','-','*','/','^','(',')','='
//返回'','','='
switch(A){
case '+':switch(B){
case '+':return '';
case '-':return '';
case '*':return '';
case '/':return '';
case '^':return '';
case '(':return '';
case ')':return '';
case '=':return '';
default:printf("表达式错误!\n");exit(0);
}
case '-':switch(B){
case '+':return '';
case '-':return '';
case '*':return '';
case '/':return '';
case '^':return '';
case '(':return '';
case ')':return '';
case '=':return '';
default:printf("表达式错误!\n");exit(0);
}
case '*':switch(B){
case '+':return '';
case '-':return '';
case '*':return '';
case '/':return '';
case '^':return '';
case '(':return '';
case ')':return '';
case '=':return '';
default:printf("表达式错误!\n");exit(0);
}
case '/':switch(B){
case '+':return '';
case '-':return '';
case '*':return '';
case '/':return '';
case '^':return '';
case '(':return '';
case ')':return '';
case '=':return '';
default:printf("表达式错误!\n");exit(0);
}
case '^':switch(B){
case '+':return '';
case '-':return '';
case '*':return '';
case '/':return '';
case '^':return '';
case '(':return '';
case ')':return '';
case '=':return '';
default:printf("表达式错误!\n");exit(0);
}
case '(':switch(B){
case '+':return '';
case '-':return '';
case '*':return '';
case '/':return '';
case '^':return '';
case '(':return '';
case ')':return '=';
case '=':printf("表达式错误!\n");exit(0);
default:printf("表达式错误!\n");exit(0);
}
case ')':switch(B){
case '+':return '';
case '-':return '';
case '*':return '';
case '/':return '';
case '^':return '';
case '(':printf("表达式错误!\n");exit(0);
case ')':return '';
case '=':return '';
default:printf("表达式错误!\n");exit(0);
}
case '=':switch(B){
case '+':return '';
case '-':return '';
case '*':return '';
case '/':return '';
case '^':return '';
case '(':return '';
case ')':printf("表达式错误!\n");exit(0);
case '=':return '=';
default:printf("表达式错误!\n");exit(0);
}
default:printf("表达式错误!\n");exit(0);
}
}//Precede
Status InOP(char c){
//判断c是否是运算符,是则返回TRUE,否则返回FALSE
switch(c){
case '+':return TRUE;
case '-':return TRUE;
case '*':return TRUE;
case '/':return TRUE;
case '^':return TRUE;
case '(':return TRUE;
case ')':return TRUE;
case '=':return TRUE;
default:return FALSE;
}
}//InOP
//***************************************************************************
float Operate(float a,char theta,float b){
switch(theta){
case '+':return a+b;
case '-':return a-b;
case '*':return a*b;
case '/':
if(b==0){
printf("分母不能为0!\n");
exit(0);
}
else return a/b;
case '^':
if(a==0b=0){
printf("0的指数必须大于0!\n");
exit(0);
}
else return (float)pow(a,b);
default:printf("表达式错误!\n");exit(0);
}
}//Operate
Status EvaluateExpression(){
//算术表达式求值
char c,x,theta,prec;
//c是每次读取的字符,x是存放脱括号后的多余的括号,theta是运算符,prec是c的前一个字符
float a,b,result;//a、b是每次从运算数栈中取出的要进行运算的数,result存放最终结果
float cc,flag,ii,minus=1;
//cc存放由字符串转化而来的浮点数,flag用于标记是否已读取过小数点,
//ii存放小数部分需要缩小的倍数,minus用于记录该数前是否有负号
SqStack1 OPTR;
SqStack2 OPND;
InitStack(OPTR);InitStack(OPND);
Push(OPTR,'=');
prec='=';scanf("%c",c);
while(c!='='||GetTop(OPTR)!='='){
cc=0;flag=0;ii=10;
if(c=='-'(prec=='='||prec=='(')){minus=-1;prec=c;scanf("%c",c);}
//若某“-”前面是“=”(之一个符号就是“-”)或“(”,则此为负号,不是减号
else if(!InOP(c)){
while(!InOP(c)){
if(c=48c=57){
if(flag==0)cc=cc*10+c-48;//小数点之前
else if(flag==1){cc=cc+(c-48)/ii;ii*=10;}//小数点之后
else {printf("小数点错误!\n");exit(0);}//小数点有错
}
else if(c=='.')flag++;//读到小数点
else {printf("表达式错误!\n");exit(0);}
prec=c;scanf("%c",c);
}
cc*=minus;minus=1;
Push(OPND,cc);
}//不是运算符则进OPND栈
else
switch(Precede(GetTop(OPTR),c)){
case '':Push(OPTR,c);prec=c;scanf("%c",c);break;//栈顶元素优先级低
case '=':Pop(OPTR,x);prec=c;scanf("%c",c);break;//脱括号并接收下一字符
case ''://退栈并将运算结果入栈
Pop(OPTR,theta);
Pop(OPND,b);Pop(OPND,a);
Push(OPND,Operate(a,theta,b));
break;
}
}
result=GetTop(OPND);
printf("%f\n",result);
//DestroyStack(OPTR);
//DestroyStack(OPND);
return OK;
}//EvaluateExpression
void main(){
printf(" **********************\n");
printf(" * 欢迎使用计算器! *\n");
printf(" **********************\n");
printf("请输入表达式,以“=”结束:\n");
printf("(支持实数间的加(+)、减(-)、乘(*)、除(/)、乘方(^)、单目减(-)运算)\n");
EvaluateExpression();
exit (0);
}
E调 《卡农》(括号是一起按)
HQ)---(EN)---(OF)----(NC)----(MD)----(LA)----(MD)----(NE)
(HQ)LQO-(EN)JLN-(OF)MOQ-(NC)JLN-(MD)HKM-(LA)JLO-(MD)HKM-(NE)ILN
(HQ)EHE-(EN)ILI-(OF)JOM-(SC)LTN-(RD)KOH-(HQ)PON-(MD)HKM-(NE)ILN
(OH)NOJ-(LE)INE-(OF)JOM-(SC)QST-(RD)QPR-(HQ)PON-(MD)HKM-(OE)PON
(OH)NOJ-(LE)INE-(OF)JOM-(SC)QST-(RD)QPR-(HQ)PON-(MD)HKM-(OE)HO NO P
(HQ)L QPOP-E LQRQP-(OF)JOMJNO-(CN)LJL-
(MD)HNO-(HL)JOJ-(MD)H KMOP-(EO)INOP-
(HQ)L QPOP-E LQRQP-(OF)J OMJNO-(CN)LJL-
(MD)H OR-(HQ)POL-(MD)H KMOP-(EN)INOP
(HS)QRSQR-S LMNOPQR-(FQ)OPQJK-LMLKLONO
(DM)ONMLK-LKJKLMNO-(DM)ONONO-NMNOPQRS
(HS)QRSQR-S LMNOPQR-(FQ)OPQJK-LMLKLONO
(DM)ONMLK-LKJKLMNO-(DM)ONONO-NMNOPQRS
(HQ)OPQPO-PNOPQPON-(FO)MNOJK-LMLKLONO
(DM)ONMLK-LKJKLMNO-(DM)ONONM-NOPONOMN
HLOQ-EILN-FJMO-CLNQ-DHKM-HJLO-DKMO-EILN
HLOQ-EILN-FJMO-CLNQ-DHKM-HJLO-DKMO-EILN
手机自带邮件如何同步邮箱? 手机自带邮件同步邮箱方法:\r\n1、在手机上,打开电子邮件app添加账户。\r\n2、电子邮件app中,添加邮箱。输入邮箱账号、账户密码,绑定常用邮箱,登录后使用。\r\...
帮助QQ好友申诉自己却没有开通邮箱该怎么办 帮助QQ好友申诉自己却没有开通邮箱该怎么办?有的朋友在帮助QQ好友申诉时候可能没有开通邮箱,结果就没收到邮件,下面小编来教大家没开通邮箱怎么帮助好友申诉。...
星际之狼3:内战的游戏秘籍 一、准备工作:游戏目录下找到 Main.ini 文件,可使用记事本打开,找到:DEBUGMODE = 0改为DEBUGMODE = 1保存,重新进入游戏。二、游戏秘籍:游戏...
如何设置qq邮箱账号和密码 1.首先登陆QQ邮箱,在邮箱名称下找到【设置】。2.点击【设置】后,找到【账户】选项。3.在【账户】选项里,一直往下拉,只到找到【账户安全】选项。4.点击【设置独立密码】,...
苹果手机邮箱怎么登录 苹果手机邮箱如何登录 1、以苹果7手机为例。 2、操作步骤:开始,先在手机的桌面上找到应用程序“设置”图标,点击进入新的操作界面。 3、然后,进入到设置的操作界面后,找到“账...
手机QQ邮箱在哪里? 1、打开手机QQ应用。在底部导航栏中找到并点击“发现”按钮。在发现页面中找到并点击“邮箱”选项。如果你已经登录过邮箱账号,则会直接显示你的邮箱收件箱。2、手机QQ邮箱可以通过下载...