一、需求分析
在上次的四则实验中,完成了随便生成题目的要求以及统计正确率等基本框架。
本次实验完成目标:
1:加入真分数的随机数字,并要输出也为真分数的形式。
2:答案应化为最简,否则为错误。
3:基本框架与实验一想同,保持输出格式及输出值对应。
二:设计方面
基于上次的实验代码,这次实验解决的目标
1:真分数
在上次的实验中,我们设计了一个a[100]的随机数的数组表示数字,符号以一个c[100]的随机数字的数组表示符文(值都在1~4,1代表+,2代表-......),在本次的实验中,再加一个数组p[100],表示分母的值(范围在1~10)。在上次的代码中,我是2个2个数字进行运算的,例如3*5+4+2,先读入3*5,用s记录其值,再读入一个符号+,再读入一个数字4,重复。而在这次中一次读入%d/%d,这个分母当然就是p[100]数组里面的,判断是否为1,进行下一步。
2:优先级问题
在上一次的实验中,没有解决优先级的问题,从上面我的数字计算方法中也可以看出存在这个漏洞,在这次的实验中可以用一个方法来解决这个问题。在我们的设计中,是有一个数组c[100]来表示符号的,虽然数字是随机的,但却是在程序运行的时候值是确定的,我可以用一个返回值的形式来判断,当c[i]返回值为1时代表为*或者/,为0就为+或者-。为1时当然可以从左至右依次读入算。为0时判断c[i+1],若为1时计算后面的,为0,还是可以从左到右算。
三:运行截图
四:代码托管
https://gitee.com/bdace/20165216_chen_houkang.git
原文:https://www.cnblogs.com/qq2497879550/p/8910269.html