如何用数据结构随机输出一个数学表达式,可包括小括号、中括号、+、-、*、\运算,数据可以有整数或小数用户看到这个表达式后,输入结果,程序判别结果是否正确,一题计算一次,直到n个题目完成.如果有会的大神还清叙述下总体的算法思想,要是还提供代码的话就更好啦,

问题描述:

如何用数据结构随机输出一个数学表达式,可包括小括号、中括号、+、-、*、\运算,数据可以有整数或小数
用户看到这个表达式后,输入结果,程序判别结果是否正确,一题计算一次,直到n个题目完成.
如果有会的大神还清叙述下总体的算法思想,要是还提供代码的话就更好啦,

引入“子表达式”概念.
最终表达式可以是如下结构:子表达式 [运算符 子表达式]...
其中,子表达式可以由其它子表达式构成,可以规定其层数(也就是内部可嵌套多少个子表达式),然后根据层数不同和运算符优先度不同(比如加比乘要低)来判断给该子表达式两端添加什么样的括号.
1.主程序随机产生子表达式的个数、层数,然后调用生成子表达式的子程序.
2.生成子表达式的子程序随机生成数字、运算符或调用自身以生成下一层的子表达式.
3.最后返回主程序,生成最终表达式.
时间优先,分数太少,你又不说开发平台和语言,只能如此了……