#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'*':match('*')
temp*=factor()
break
case'/':match('/')
div=factor()
if(div==0) /*处理除数为零的情况*/
{
printf("The divisor is zero!\n")
exit(1)
}
temp/=div
break
}
return temp
}
double factor(void)
{
double temp
char number[61]
int i=0
if(token[n]=='(')
{
match('(')
temp=exp()
match(')')
}
else if(isdigit(token[n])||token[n]=='.')
{
while(isdigit(token[n])||token[n]=='.') /*将字符串转换为浮点数*/
{
number[i++]=token[n++]
token[n]=getchar()
}
number[i]='\0'
temp=atof(number)
}
else error()
return temp
}
main()
{
double result
FILE *data=fopen("61590_4.dat","at")
if(data==NULL)
data=fopen("61590_4.dat","wt")
if(data==NULL)
return 0
token[n]=getchar()
result=exp()
if(token[n]=='\n')
{
token[n]='\0'
printf("%s=%g\n",token,result)
fprintf(data,"%s=%g\n",token,result)
}
else error()
fclose(data)
return 0
getch()
}
四则混合运算指的是:包括有加、减、乘、除以及括号(大括号、中括号、小括号)的算式运算。
四则指的是:加、减、乘、除 。
同级运算时,从左到右依次计算;两级运算时,先算乘除,后算加减。
有括号时,先算括号里面的,再算括号外面的;有多层括号时,先算小括号里的,再算中括号里面的,再算大括号里面的,最后算括号外面的。
要是有乘方,最先算乘方。在混合运算中,先算括号内的数 ,括号从小到大,如有乘方先算乘方,然后从高级到低级。
扩展资料:
加法运算性质:从加法交换律和结合律可以得到:几个加数相加,可以任意交换加数的位置;或者先把几个加数相加再和其他的加数相加,它们的和不变。例如:34+72+66+28=(34+66)+(72+28)=200。
减法运算性质:
①一个数减去两个数的和,等于从这个数中依次减去和里的每一个加数。例如:134-(34+63)=134-34-63=37。
②一个数减去两个数的差,等于这个数先减去差里的被减数,再加上减数。例如:100一(32—15)=100—32+15=68+15=83。
乘法运算性质:
①几个数的积乘一个数,可以让积里的任意一个因数乘这个数,再和其他数相乘。例如:(25×3 × 9)×4=25×4×3×9=2700。
②两个数的差与一个数相乘,可以让被减数和减数分别与这个数相乘,再把所得的积相减。例如: (137-125)×8=137×8-125×8=96。
除法运算性质:
①若某数除以(或乘)一个数,又乘(或除以)同一个数,则这个数不变。例如:68÷17×17=68(或68×17÷17=68)。
②一个数除以几个数的积,可以用这个数依次除以积里的各个因数。例如:320÷(2×5×8)=320÷2÷5÷8=4。
参考资料来源:百度百科——四则混合运算
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)