函数实验报告-201621033002杨晓琪

函数实验报告-201621033002杨晓琪一 PTA 实验报告 题目 1 哥德巴赫猜想 本题 PTA 提交列表 设计思路 包括流程图 设计思路 设计一个子函数进行判断素数 在主函数中逐个递加 i 先利用子函数判断 i 是否为素数 如果 i 是素数 再判断 n i

大家好,我是讯享网,很高兴认识大家。

一、PTA实验报告

题目1:哥德巴赫猜想

①本题PTA提交列表


讯享网

②设计思路(包括流程图)

 

设计思路:设计一个子函数进行判断素数,在主函数中逐个递加 i ,先利用子函数判断 i 是否为素数,如果 i 是素数,再判断 n-i 是不是素数,如果是,则输出,如果不是,则重新判断下一个 i 是否为素数。

③本题调试过程碰到问题及PTA提交列表情况说明。

调试过程遇到的问题:

首先是设计思路,没有遵循子函数利用率尽可能大的原则,设置的子函数为寻找区间1到n的素数,若寻找出一个素数 i,则记录这个 i ,退出循环,然后再接着判断  n-i 是否为素数,如果是则输出,如果不是,则回到子函数寻找 区间 i 到 n 的素数,以此类推。但输出结果却为 24=1+23,将区间改为2到n,则输出24=2+22。过程繁杂混乱,则采用另一种方法。

调试中出现 

将输出的数据类型改为%.f ,则进行PTA的提交

出现 “运行超时”  的错误。

将数据类型由浮点型float 改为 long int 后问题解决,原因为整型的运算速度比 浮点型的快

题目2:近似求PI

 ①本题PTA提交列表

②设计思路(包括流程图)

设计思路:设计一个子函数求每个项的值返回到主函数再进行累加得s的值,近似PI为2*s。

③本题调试过程碰到问题及PTA提交列表情况说明。

   调试中:由于不清楚科学计数法的输入方法,将数据类型设为long double,最后输出PI为0;

查资料得:double类型为C++原始类型,所以编译器均支持,而long double是C99规范增加的新类型,只有支持C99的编译器才支持long double。

将数据类型改为double后PI有值。另一个需要注意的问题就是输出的有效位数应为5。

题目3:求n以内最大的k个素数以及它们的和

①本题PTA提交列表

②设计思路(包括流程图)

③本题调试过程碰到问题及PTA提交列表情况说明。

PTA提交列表情况说明:第一次为15分是没有注意到“若n以内不够k个素数,则按实际个数输出”,于是与sample2不等价。

添加条件当n<2不输出并且循环结束,问题解决。

 调试过程中:等于号前面多输出加号。由于在输出素数时直接printf("%d+",n),在最后得出结果时常在等于号前多出一个+号。

修改后设一个flag作标识,若已输出数据则可在下一个素数之前输出加号,若是第一个输出素数则不在素数前添加加号。

二、同学代码互评

1.我的代码、互评同学代码截图

我的代码:

同学的代码(李怡婷):

2.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

  同学的代码对输出换行符的分类比较详细,有控制起始位置正负号的代码,单独提出负号与正号的输出格式,代码条理更清晰。我的代码虽然简洁但并不严谨,同学的代码更细致条理更清晰。我更喜欢同学的代码。同学的代码是直接对a[i]进行分类判断是否输出字符带换行符,而我的代码则是一个一个输出a[i]再一个一个判断是否在后面加换行符。

三、截图本周题目集的PTA最后排名。

四、本周学习总结

1.本周你学会了什么?

  ①声明函数,调用函数

  ②封装子函数

  ③更多的是学习到一些方法和思路,以及对代码的调试,能更快地找出错误并改正。

2.本周的内容还有哪些不会?

  对许多已有函数还不认识,不能熟练掌握、运用。

小讯
上一篇 2025-01-05 08:22
下一篇 2025-04-06 17:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/34973.html