图形计算器c语言代码,C代码,计算器的做个c计算器,在图形界面上有-*/的按扭,还有十 爱问知识人...

MFC可以快速实现。我就不给出可视化部分了,因为太简单,建一个工程,然后可视化的编辑对话框,然后添加按钮,添加映射什么的。

核心算法在此,支持表达式

3 (32*23 53)/20

试试吧

/*

simple integer arithmetic calculator according to the EBNF

-> {}

-> |-

->{}

-> *

-> ( )| Number

Input a line of text from stdin

Outputs "Error" or the result。

*/

#include

#include

#include

char token;/*global token variable*/

/*function prototypes for recursive calls*/

int exp(void);

int term(void);

int factor(void);

void error(void)

{

fprintf(stderr,"Error

");

exit(1);

}

void match(char expectedToken)

{

if(token==expectedToken)token=getchar();

else error();

}

main()

{

int result;

token = getchar();/*load token with first character for lookahead*/

result = exp();

if(token=='

')/*check for end of line */

printf("Result = %d

",result);

else error();/*extraneous cahrs on line*/

return 0;

}

int exp(void)

{

int temp = term();

while((token==' ')||(token=='-'))

switch(token)

{

case ' ':

match(' ');

temp =term();

break;

case '-':

match('-');

temp-=term();

break;

}

return temp;

}

int term(void)

{

int temp = factor();

while (token=='*')

{

match('*');

temp*=factor();

}

return temp;

}

int factor(void)

{

int temp;

if(token=='('){

match('(');

temp = exp();

match(')');

}

else if(isdigit(token)){

ungetc(token,stdin);

scanf("%d",&temp);

token = getchar();

}

else error();

return temp;

}。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值