int fib( int n );
定义循环变量i,输入n,定义三个值储存连续的斐波那契数;
for i=1 to n
??if n==1||n==2 return 1
??end if
???f1=f2;
???f2=f3;
???f3=f1+f2;
end for
return f3;
void PrintFN( int m, int n );
定义i=1,表示第i个斐波那契数,范围为【m,n】
while(1)
??if fib(i)<=n&&fib(i)>=m
??输出fib(i)
??end if
???i++;
??if fib(i)>n//超出范围
??break;
end while
- 部分正确
- 在第一个函数输出斐波那契数的时候没有对f3赋初值,或者是第一个函数的返回值没有写成f3,而是f2……
- 运行超时
- 时间有点久了,好像是乱注释把有用的注释掉搞得,进不去第二个函数。
主函数,显示菜单。
用时间函数产生随机数,用产生的随机数取余4产生随机的1,2,3,0,switch产生随机的运算符。
二者差不多,只显示一个吧
result逐步运算结果,两个switch产生两个随机运算符
调用时间函数,可以使生成的信息随机(感谢课堂派,可见代码交流的重要性)。
突然觉得最后显示正答率信息的时候有出现菜单有点不好看,做出更改,加一清屏函数。
Q1:输入做题数目后,程序竟然是死循环。
A1:在输入难度等级的是时候,我用了一个do-while来解决不合法输入的问题,但是while循环条件写错,导致了只要输入正确,就会继续循环…………我不死循环谁死循环。
Q2:怎么生成随机运算符?
A2:有问题,问度娘……结果进了数组的坑…………不过最终失败了……最后突发奇想用switch。
Q3:清屏函数的使用。
A3:清屏函数的使用摸索了好长时间,因为它一清就是全屏伤害,把握清屏函数的位置是一门艺术。
在四则运算中,最棘手的还是除法,至今我还没解决如何解决除数为零的问题,本来我用了一个if来使除数不为零,但是如果除数为零,会导致“/”不能正常输出,程序一个2 0=的情况,程序有待优化,希望同学们可以提出解决方向让我借鉴一下。
如果除法运算不能满足要求的话,如果不进行优化那么会出现没有运算符的情况。
更改之后,将除法改成除法,到时可以算是解决问题还是希望同学们能提一下意见。
原文:https://www.cnblogs.com/qsls8643/p/9941100.html