#include <stdio.h>
#include <math.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#define PI (3.14159265358979323846/180.0) //改为角度输入
#define EPS (1e-7) //浮点数比较
#define N 8 //函数名称字符的最大长度
//#define M 7 //现支持函数个数
#define MAX_INFIX 128 //表达式的最大长度
double EvExpre(void); //表达式求值函数
int main( void )
{
while(8)
{
printf("\n请输入计算表达式:");
rewind(stdin);
printf("表达式值为:%.13lg\r",EvExpre());
}
return 0;
}
static double ftoa_zw(char *c) //字符转实数
{
double n=0.0;
if(isdigit(*c))
do
{
n=n*10.0+(*c-'0');
}
while(isdigit(*c=getchar()));
if(*c=='.')
{
double m=1.0;
while(isdigit(*c=getchar()))
{
n=n*10.0+(*c-'0');
m*=10.0;
}
n /= m;
}
return n;
}
static int isfunc(const char *cur)//是否是函数符(是返回下标,否返-1)
{
const char *ap[]= {"sin","asin","cos","acos","tan","exp","log",NULL};
const char **i;
for(i=ap;*i!=NULL; ++i)
if(strcmp(*i,cur)==0)
return (int)(i-ap);
return -1;
}
static double mathfuc(double n,int i)//函数运算
{
double (*f[])(double)= {sin,asin,cos,acos,tan,exp,log,NULL};//一一对应
if(i<0 || i>= sizeof(f)/sizeof(f[0])-1 )
{
puts("程序异常退出...");
exit(-1);
- 1
- 2
前往页