计算器的编码大神们帮帮忙
- 提问者网友:情歌越听越心酸
- 2021-08-20 18:22
有没有非常仔细的计算其编码?
- 五星知识达人网友:平生事
- 2021-08-20 19:22
MFC可以快速实现.我就不给出可视化部分了,因为太简单,建一个工程,然后可视化的编辑对话框,然后添加按钮,添加映射什么的. 核心算法在此,支持表达式 3+(32*23+53)/20 试试吧 #include #include #include char token; int exp(void); int term(void); int factor(void); void error(void) { fprintf(stderr,Error\n); exit(1); } void match(char expectedToken) { if(token==expectedToken)token=getchar(); else error(); } main() { int result; token = getchar(); result = exp(); if(token=='\n') printf(Result = %d\n,result); else error(); 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; }
记得采纳啊