这段时间学习了函数的用法,在完成PTA作业的过程中发现并体会到使用函数可以使代码整体结构更加清晰明了,通过运用函数也可以减少不必要的代码使代码更加简洁,但学习过程中还存在一些不明白,对函数的运用及调用还不是那么熟练,经常出现编译错误的情况,几种变量的运用也不是那么熟练,希望通过接下来的努力来解决。
145分
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。
int fib( int n );
定义 item,第一个数字num1,第二个数字num2第二个数字,i
if n==1||n==2 //判断是否为第一项或第二项
then return 1
end if
if n>=3 then
for i=3 to n do
item=num1+num2; //计算前两项和
num1=num2;
num2=item; //按照题目更新num1和num2;
end if
return item;
void PrintFN( int m, int n );
定义 i,j,flag=1, 统计count;
while fib(i)<m //找到满足区间的第一个数
i++;
while fib(i)<=n //
if flag==1 //判断是否为第一个
then
printf fib(i);
flag=0;
end if
else //从第二个数开始需要输出空格
then
printf 空格+fib(i)
end if
count++;//统计Fibonacci数个数
i++;
end while
if flag==0 //若没有Fibonacci数
printf "No Fibonacci number"
end if
-Q1:第一次没有仔细阅读题目,没有考虑到区间端点
-A1:提交了两次后发现问题
-Q2:上述问题改正后还是“答案错误”
-A2:观察测试点发现忽略了第一位和第二位,然后进行改正
为了使主函数更加简洁,将开始与结束部分都封装在函数里面
当选择级别时输入不符合要求的数字,为了使程序可以正常进行,设计此函数,强制输入正确数字,然后根据正确的数字进入不同的级别
随机生成运算符
进行级别1的出题
进行级别2&3的出题
此函数作用就是校对答案
此函数作用就是计算正确率
头一次自己独立编写这么多行代码,刚开始下手时 ,因为功能的多样性有点无从下手,但写完大致的函数关系图之后也渐渐的有了思路,但编写和调试过程中也经常出现一些大大小小的问题,也通过查询资料或是请教同学得以解决,比较遗憾的是当初设想的一些拓展功能没有实现,这次完成作业的过程中也暴露了一些问题,比如上课学到的知识在运用方面不是那么得心应手,希望之后更加努力,增加代码量,对之前的知识进行复习巩固,使自己进步。
原文:https://www.cnblogs.com/qq1191834402/p/9931344.html