C语言做的简易计算器,要可以直接输入一个算式就得到结果的。

来源:百度知道 编辑:UC知道 时间:2024/06/09 03:35:18
该怎么做啊?课程设计,明天就要交了。老师不要那种指定运算顺序的,他要可以自动识别运算符号并直接运算就得到结果的。
我们学的东西都很简单,就潭浩强的C程序设计第三版.不要复杂的函数,只有指针链表什么的,现在很头痛啊,一定要C语言,不要C++.

我这里可以执行,用VC
一般的运算都可以做

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
char token[61]; /*存放表达式字符串的数组*/
int n=0;
void error(void) /*报告错误函数*/
{
printf("ERROR!\n");
exit(1);
}
void match(char expected) /*检查字符匹配的函数*/
{
if(token[n]==expected)
token[++n]=getchar();
else error();
}
double term(void); /*计算乘除的函数*/
double factor(void); /*处理括号和数字的函数*/
double exp(void) /*计算加减的函数*/
{
double temp=term();
while((token[n]=='+')||(token[n]=='-'))
switch(token[n])
{
case'+':match('+');
temp+=term();
break;
case'-':match('-');
temp-=term();
break;
}
return temp;
}
double term(void)
{
double div;
double temp=factor();
while((token[n]=='*')||(token[n]=='/'))
switch(token[n])
{
case'*&