这个计算器比较简单,只能计算加减乘除,用到了递归思想
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!方法/步骤
1首先打开VC
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!Ii5办公区 - 实用经验教程分享!
2文件》》新建
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!Ii5办公区 - 实用经验教程分享!
3新建一个C 文档
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!Ii5办公区 - 实用经验教程分享!
4先声明主函数还有变量Ii5办公区 - 实用经验教程分享!
#include stdio.h>Ii5办公区 - 实用经验教程分享!
char token;Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!Ii5办公区 - 实用经验教程分享!
5程序用到几个函数,下面我来介绍下Ii5办公区 - 实用经验教程分享!
这个函数是运算符匹配程序Ii5办公区 - 实用经验教程分享!
void match( char expectedToken ) /*对当前的标志进行匹配*/Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
if( token == expectedToken ) token = getchar(); /*匹配成功,获取下一个标志*/Ii5办公区 - 实用经验教程分享!
else Ii5办公区 - 实用经验教程分享!
{ Ii5办公区 - 实用经验教程分享!
printf("cannot matchn");Ii5办公区 - 实用经验教程分享!
exit(1); /*匹配不成功,退出程序*/Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!Ii5办公区 - 实用经验教程分享!
5相关内容非法爬取自百度经验6这个函数是计算低优先级的运算,比如,加减Ii5办公区 - 实用经验教程分享!
int low( void )/*用于计算表达式中级别最低的运算*/Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
int result = mid(); /*计算比加减运算优先级别高的部分*/Ii5办公区 - 实用经验教程分享!
while(( token == ' ' ) || ( token == '-' ))Ii5办公区 - 实用经验教程分享!
if ( token == ' ')Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
match(' '); /*进行加法运算*/Ii5办公区 - 实用经验教程分享!
result = mid();Ii5办公区 - 实用经验教程分享!
break;Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
else if ( token == '-')Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
match('-'); /*进行减法运算*/Ii5办公区 - 实用经验教程分享!
result -= mid(); Ii5办公区 - 实用经验教程分享!
break;Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
return result;Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!Ii5办公区 - 实用经验教程分享!
7这个函数是计算高优先级运算,乘除
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!int low( void )/*用于计算表达式中级别最低的运算*/Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
int result = mid(); /*计算比加减运算优先级别高的部分*/Ii5办公区 - 实用经验教程分享!
while(( token == ' ' ) || ( token == '-' ))Ii5办公区 - 实用经验教程分享!
if ( token == ' ')Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
match(' '); /*进行加法运算*/Ii5办公区 - 实用经验教程分享!
result = mid();Ii5办公区 - 实用经验教程分享!
break;Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
else if ( token == '-')Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
match('-'); /*进行减法运算*/Ii5办公区 - 实用经验教程分享!
result -= mid(); Ii5办公区 - 实用经验教程分享!
break;Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
return result;Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!Ii5办公区 - 实用经验教程分享!
8这个函数是计算,乘除和带括号的运算Ii5办公区 - 实用经验教程分享!
int high( void )/*用于计算表达式中级别最高的运算,即带()的运算*/Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
int result; Ii5办公区 - 实用经验教程分享!
if( token == '(' ) /*带有括号的运算*/Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
match( '(' );Ii5办公区 - 实用经验教程分享!
result = low();/*递归计算表达式*/Ii5办公区 - 实用经验教程分享!
match(')');Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
else if ( token>= '0'&&token='9' ) /*实际的数字*/Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
ungetc( token, stdin ); /*将读入的字符退还给输入流,为读取整个数*/Ii5办公区 - 实用经验教程分享!
scanf( "%d", &result ); /*读出数字*/Ii5办公区 - 实用经验教程分享!
token = getchar(); /*读出当前的标志*/Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
elseIi5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
printf("The input has unexpected charn"); /*不是括号也不是数字*/Ii5办公区 - 实用经验教程分享!
exit(1);Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
return result;Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!Ii5办公区 - 实用经验教程分享!
9主函数Ii5办公区 - 实用经验教程分享!
main()Ii5办公区 - 实用经验教程分享!
{ Ii5办公区 - 实用经验教程分享!
int result; /*运算的结果*/ Ii5办公区 - 实用经验教程分享!
printf("*****************************************n");Ii5办公区 - 实用经验教程分享!
printf("**Welcome to use this simple calculator**n"); Ii5办公区 - 实用经验教程分享!
printf("**Please input a multinomial like **n");Ii5办公区 - 实用经验教程分享!
printf("** 6-3*(5-1)/2 14/7 **n");Ii5办公区 - 实用经验教程分享!
printf("*****************************************n");Ii5办公区 - 实用经验教程分享!
token = getchar(); /*载入第一个符号*/Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!result = low(); /*进行计算*/Ii5办公区 - 实用经验教程分享!
if( token == 'n' ) /* 是否一行结束 */Ii5办公区 - 实用经验教程分享!
printf( "The answer is : %dn", result );Ii5办公区 - 实用经验教程分享!
else Ii5办公区 - 实用经验教程分享!
{Ii5办公区 - 实用经验教程分享!
printf( "Unexpected char!");Ii5办公区 - 实用经验教程分享!
exit(1); /* 出现了例外的字符 */Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
scanf("%d",result);Ii5办公区 - 实用经验教程分享!
return 0;Ii5办公区 - 实用经验教程分享!
}Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!Ii5办公区 - 实用经验教程分享!
10程序结果
Ii5办公区 - 实用经验教程分享!
Ii5办公区 - 实用经验教程分享!Ii5办公区 - 实用经验教程分享!
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!Ii5办公区 - 实用经验教程分享!