多语言展示
当前在线:1250今日阅读:141今日分享:15

C语言编写简单计算器

这个计算器比较简单,只能计算加减乘除,用到了递归思想
方法/步骤
1

首先打开VC++

2

文件》》新建

3

新建一个C++文档

4

先声明主函数还有变量#include char token;

6

这个函数是计算低优先级的运算,比如,加减int low( void )/*用于计算表达式中级别最低的运算*/{int result = mid(); /*计算比加减运算优先级别高的部分*/while(( token == '+' ) || ( token == '-' ))if ( token == '+'){match('+');     /*进行加法运算*/result += mid();break;}else if ( token == '-'){match('-');    /*进行减法运算*/result -= mid(); break;}return result;}

7

这个函数是计算高优先级运算,乘除 int low( void )/*用于计算表达式中级别最低的运算*/{int result = mid(); /*计算比加减运算优先级别高的部分*/while(( token == '+' ) || ( token == '-' ))if ( token == '+'){match('+');     /*进行加法运算*/result += mid();break;}else if ( token == '-'){match('-');    /*进行减法运算*/result -= mid(); break;}return result;}

8

这个函数是计算,乘除和带括号的运算int high( void )/*用于计算表达式中级别最高的运算,即带()的运算*/{int result; if( token == '(' ) /*带有括号的运算*/{match( '(' );result = low();/*递归计算表达式*/match(')');}else if ( token>= '0'&&token<='9' ) /*实际的数字*/{ungetc( token, stdin ); /*将读入的字符退还给输入流,为读取整个数*/scanf( '%d', &result ); /*读出数字*/token = getchar();  /*读出当前的标志*/}else{ printf('The input has unexpected char\n'); /*不是括号也不是数字*/ exit(1);}return result;}

9

主函数main(){   int result;  /*运算的结果*/                   printf('*****************************************\n');printf('**Welcome to use this simple calculator**\n'); printf('**Please input a multinomial like      **\n');printf('**                    6-3*(5-1)/2+14/7 **\n');printf('*****************************************\n');token = getchar(); /*载入第一个符号*/ result = low(); /*进行计算*/if( token == '\n' ) /* 是否一行结束 */printf( 'The answer is : %d\n', result );else {printf( 'Unexpected char!');exit(1); /* 出现了例外的字符 */}scanf('%d',result);return 0;}

10

程序结果

推荐信息