C四则运算程序代码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四则表达式计算
一、程序分析和设计
把整个表达式存为字符数组,按照四则运算规则寻找其中的运算符号,然后提取左右两侧操作数计算,用计算结果替换掉计算的表达式,这样整体表达式会被简化,继续重复这个过程,直到找不到运算符为止。
1)运算表达式的存储
定义字符数组来存储即可,注意由于运算过程中可能会出现小数,而小数会导致表达式长度增加,所以定义时字符数组长度应该足够(比如1000)并且计算结果应该减少精度,比如保留小数点后面三位。
2)数和字符数组之间的转化
提取出来的操作数实际为字符序列,计算前我使用 atof(定义在)转化为浮点数运算,同样的,运算结果要替换表达式中的字符序列也需要先转化为字符串才行,我使用 sprintf 函数,该函数定义在中
字符串的连接使用了 strcat 等函数。
3)计算逻辑
设pstr 为计算表达式
{
double num = ;
sscanf(x, "%f", &num);f",comzhi);
}
elsef",comzhi);
}
strcat(strleft,com);f",comzhi);
}
else
{
comzhi=cmjian(coml,comr);
sprintf(com,"%.3f",comzhi);
}
strcat(com,strright);
strcpy(pstr,com);
}
}
//没找到,说明全部+-都计算完了
zhi=atof(pstr);
return zhi;
}
三、运行效果
四、总结
还无法提醒形如3-45*+或输入sgfs-34等式的错误,别重新输入,无法计算带括号和函数的表达式等更复杂的四则表达式。另外程序虽然可以运行,但是仍有4个warnings,而且代码显得有点长,其实可以再简练一点。