PTA实验报告(循环 数组 函数)

一.循环PTA实验作业

题目一.7-2 求平方根序列前N项和

1.本题PTA提交列表

2.设计思路

本题调用了sqrt数学函数计算平方根,其次只用了一层循环,计算平方根之后使用循环累加计算总和sum。

借助了中间值item去接收每一次的平方根值,再将其累加到sum中。

程序较为简单明了,使用for循环较为简单。

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

(1) for循环使用错误。

因为for语句只控制紧跟其后的一条语句,

而在第一次的提交过程中没有在for语句后加中括号,

没有将for语句后的循环括起来,这就导致了答案错误。

(2)格式错误。

PTA是一个很严谨的平台,这次的错误我找了很久经过同学的提醒知道,在输出的时候格式错误。

在输出的时候sum后应加一个空格,“=”后也应加一个空格,这样再次提交就对了。

这个错误警醒自己一定要按照题目要求去做,要仔仔细细地读懂题目。

4.代码截图。

题目二.7-7 计算阶乘

1. 本题PTA提交列表

2. 设计思路

本题使用了两层循环。

外循环用来将每次的阶乘累加在sum中,内循环用来计算阶乘值记录在item中。

在外循环里有一个非常重要的就是对每次的item赋初值,以免上次的item值仍然存在而导致答案错误。

外循环和内循环嵌套使用是一个重要的关于循环的知识点。

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

本题由于在Dev中修改运行了直接复制粘贴在PTA上,所以没有什么较大的错误。

由于粗心而在Dev中出现了如下错误:

经过检查后发现,字母拼写出错了。此后还出现了很多类似的错误,总结出关于这种错误一般是由于单词拼写出错。

4.代码截图。

题目三.7-32 求1到100的和

1.本题PTA提交列表

2. 设计思路

使用一层循环将一到一百累加起来,储存在sum中,最后输出。

本题是较为简单的循环体,但还是要细心去做。

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

(1)由于粗心导致答案错误。

本题刚开始提交错误,自己找了半天没找出来错误,在Dev上也没有提示。

又提交了第二次还是答案错误,我找了同学帮我查找了一下错误,printf语句中出现错误。

printf("sum = %d",&sum);

sum前不应加&,由于粗心打了上去,在寻找错误中浪费了很长时间。

所以,以后在打代码的时候一定要细心,一方面为了正确性,另一方面为了防止浪费时间。

二、同学代码结对互评

1.互评同学:朱佳楠

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

朱佳楠同学的代码:

我的代码:

3.我和朱佳楠同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?

不同在于:朱佳楠同学使用的是while循环,我使用的是for循环。

各自优势:朱佳楠同学的代码更加简洁,在变量的定义中只用了一个字母,这样出错率很低。如果在变量的定义中变量的名称太长的话会导致在之后的查错中浪费很多时间。

我更喜欢朱佳楠同学的代码。

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

四、本周学习总结(2分)

1.我学会了简单的循环结构去编写程序,还掌握了一些循环嵌套的使用。

2.本周的内容,你还不会什么?

如果程序中要求三个三个以上的循环结构会有些吃力,对有些题目还是不会写。

比如7-28 7-31 7-34等题目都不会写。

3.循环结构考试总结

(1).哪题做错了,怎么改?

7-6这道题是部分错误。

具体的原因还不知道。准备再多问几个同学或者老师看看如何修改。

(2).考试结果满意么,怎么改进?

较为满意,尽力就好。

希望自己还是要多看书多打代码。

二.数组PTA实验作业

题目一.7-1 数组元素循环右移问题

1.本题PTA提交列表

2.设计思路

使用数组去储存一个数列,进而再用数组的性质去完成题目要求。

本题做了挺长时间的,刚开始一直想用一个循环去完成右移,不管怎么样都不对。

后来再想了想,用两个循环来实现右移会比较容易。

使用内循环完成右移一次,再用外循环来实现题目所要求的循环右移n次。

而且在内循环中,使用递减比累加更加容易,用item接受a[n-1]的值,在内循环结束的时候将item的值赋给新组成数组的a[0]。

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

(1).段错误。

刚开始一直不知道错在了哪里。后来经过搜索知道段错误一般就是给系统预留的空间不够题目所要求的储存空间的大小。

刚开始定义了整型数组a[10],后来改成a[100]就正确了。

其实在后来学了动态分配空间之后,如果使用动态分配空间就不会有这样的问题了。

(2).在题目完成后,我想试试在内循环中如何用累加的方式而不是递减的方式去实现右移一次,发现很麻烦而且答案错误,最终还是采用了递减的方式。

4.代码截图。

题目二.7-4 查找整数

1. 本题PTA提交列表

2. 设计思路

使用数组储存N个整数,再在数组中使用for循环寻找与x相等的数,如果找到就输出其在数组中的下标i,然后退出循环。

如果没找到就输出"Not Found"。

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

本题出没有太大的错误,有些小错误在Dev上调试过之后直接复制在PTA上了。

在画流程图的时候发现在代码中定义的flag可以省去,在找到x的值的时候直接输出下标然后退出循环,如果没找到,i的值一直进行累加,当累加到n的时候直接输出"Not Found",就无需flag的存在了,代码也会很简洁一点。

4.代码截图。

题目三.7-10 矩阵运算

1.本题PTA提交列表

2. 设计思路

本题使用了二维数组,这是数组应用中最重要的一部分。

使用二维数组去输入一个n阶矩阵,在使用数组的性质,进而使用for循环进行计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和,累加在sum中,最后输出sum的值。

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

(1)break使用错误。

第一次使用了if语句去判断是否为副对角线元素,如果是就退出循环,这就导致了答案错误。

后来经过与同学讨论没有使用break语句,使用if语句,如果累加到副对角线元素则sum的值不变,即语句sum=sum。答案正确。

4.代码截图。

二、同学代码结对互评

1.互评同学:王慧婷

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

王慧婷同学的代码:

我的代码:

3.我和王慧婷同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?

不同在于:王慧婷同学代码是将矩阵除最后一列和最后一行以外的所有元素累加起来,再减去副对角线上的元素。

而我的代码是分类累加起来。

各自优势:王慧婷同学的代码用了另一种思路将代码更加简洁一些。

我更喜欢王慧婷同学的代码。

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

四、本周学习总结(2分)

1.我学会了简单的数组去编写程序,还掌握了一些二维数组的使用。

2.本周的内容,你还不会什么?

如果是较为简单的二维数组程序我还可以较好的完成,稍加一些难度的二维数组完成的时候就很困难。

还有很多题目不会:7-5,7-7,7-8,7-9,7-11,7-13,7-15,7-16,7-17,7-19,7-20,7-23,7-24,7-25,7-27,7-28,7-29,7-30

3.数组考试总结

(1).哪题做错了,怎么改?

7-17这道题是部分错误。

具体的原因还不知道。准备再多问几个同学或者老师看看如何修改。

(2).考试结果满意么,怎么改进?

不满意,有很多题目没做,希望自己有时间去做一做。

三.函数PTA实验作业

题目一.7-1 求组合数

1.本题PTA提交列表

2.设计思路

本题使用了两个函数调用结构。

第一个ans(y,z) 函数的调用是为了简单地实现求组合数的公式计算,进而将计算结果储存在ans中,最后返回值。

??第二个fact(x)函数的调用是为了计算球组合数公式计算中简单的阶乘,在计算阶乘的时候使用函数,让代码能够重复利用子函数计算,进而将计算结果储存在jc中,最后返回值。

两个函数的调用使代码简洁明了,这就体现了函数应用的重要性。

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

(1).函数类型定义出错。

题目明确要求,计算阶乘的fact 函数类型为double,而我由于粗心将其类型定义为int,导致答案部分错误。

而且在调试中浪费了很多时间,重复提交了很多次。

4.代码截图。

题目二.7-3 求幂之和

1. 本题PTA提交列表

2. 设计思路

本体是较为简单的函数调用的题目。

调用函数mi(n)计算2的幂之和,在子函数中简单地实现了2的幂次方的累加,进而将累加值储存在sum中,最后返回值。

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

本题由于在Dev上已经调试好直接复制在PTA上,没有错误。

但是在Dev的调试中我发现自己还是很粗心,某些语句没有分号,字母拼写出错之类的问题等等,还是要勤加练习,也要更加细心。

4.代码截图。

题目三.7-5 近似求PI

1.本题PTA提交列表

2. 设计思路

本题代码的基本框架没什么问题,但由于其中计算复杂还是有一点难度。

在主函数的基本框架下调用了函数pi(eps)实现了近似求PI/2的公式,进而将值储存在pi中,返回pi的值到主函数中要乘2,最后输出PI的值。

在子函数实现近似求PI/2的时候分子和分母的计算较为复杂,我们就将其分开计算使计算过程简单明了了很多。

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

(1)逻辑分析出错。

在子函数的调用中,循环体语句中的item>x错误。

题目中要求最后一项小于给定精度eps,而子函数调用时的x就是eps,所以根据题目要求将item>x改成item<x即可。

(2)没有保留小数点后五位。

又是由于粗心没有认真审题,题目明确要求保留小数点后五位,我却视而不见,导致答案错误。

希望自己以后打代码一定要细心再细心!

4.代码截图。

二、同学代码结对互评

1.互评同学:高涧薇

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

高涧薇同学的代码:

我的代码:

3.我和高涧薇同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?

不同在于:高涧薇同学只调用了一次函数,而我调用了两次函数。

各自优势:高涧薇同学的代码更加简洁明了,她只调用了一次函数。我调用了两次函数,虽然在练习中可以多练习函数的调用,但就实用意义来说高涧薇同学的代码更好。

我更喜欢高涧薇同学的代码。

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

四、本周学习总结(2分)

1.我学会了如何使用函数调用去编写程序,还了解了一些递归调用的使用。

2.本周的内容,你还不会什么?

对于老师后来补充的递归调用实在是难以理解,还有PTA上一些题不会做。

比如7-2,7-4,7-6,7-7,7-8,7-9,7-11题目都不会

3.函数考试总结

(1).哪题做错了,怎么改?

7-8这道题是答案错误。

自己尝试了很多遍还是答案错误,找老师同学问问尽快把这道题做出来。

(2).考试结果满意么,怎么改进?

较为满意,尽力就好。

希望自己可以细心一些,答案错误的概率以粗心居高不下,不管做什么一定要细心。

希望自己还是要多看书多打代码。

原文地址:https://www.cnblogs.com/mr051267/p/8137231.html

时间: 2024-11-02 13:53:35

PTA实验报告(循环 数组 函数)的相关文章

循环 数组 函数

循环 一 典型例题 7.1(求交错序列前N项和) 1.本题PTA提交列表 2.流程图及思路 本题是典型的循环问题,定义浮点数与整数的问题需要注意,交错序列的问题需要在草稿纸上写下规律,然后用变量将其表示出来,输出注意题目要求的精确度问题. 3.代码截图 4.错误改正截图及说明 本题没有认真的审题,多此一举的打出了"printf". 7.5(找出最小值问题) 1.本题PTA提交列表 2.流程图及思路 本题是循环加判断的典型例题,首先在定义时应当将最小值先用一个常值定义,循环的起点从0开始

实验报告(数组)

7-2 求最大值及其下标(20 分) 本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始). 输入格式: 输入在第一行中给出一个正整数n(1<n≤10).第二行输入n个整数,用空格分开. 输出格式: 在一行中输出最大值及最大值的最小下标,中间用一个空格分开. 输入样例: 6 2 8 10 1 9 10 输出样例: 10 2 流程图:  代码: #include<stdio.h> int main() {  int n,i,j;  scanf("%d&q

三、PTA数组实验报告

三.PTA实验作业(数组) 题目一:   1.本题PTA提交列表: 2 2.设计思路(包括流程图),主要描述题目算法 //设计思路,由题目可知 1.先定义一个数组用for()循环用于输入数据 2.再用一个for()循环,用于置换数组中个值得位置(用第一个和最后一个的位置交换,第二个和倒数最后一个交换...) 3.最后再用一个for循环输出就可以 最终代码如下: 流程图如下: 3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的列表中

数组实验报告 张文扬

数组实验报告 题目一:数组元素循环右移问题 1. 本题PTA提交列表 2. 设计思路(含流程图) #3.本题调试过程碰到问题及PTA提交列表情况说明. 本题遇到的的格式错误不知道在哪里,答案没有错,设计思路是分别构造两个函数, 一个输入函数,一个change函数用来平移数组,用取余来实现n(数组长度)<m(平移数) 题目二:A-B 1. 本题PTA提交列表 2. 设计思路(含流程图) 3.本题调试过程碰到问题及PTA提交列表情况说明 设计思路为分别设计两个函数real和delete,real函数

函数-循环-数组

一.PTA实验作业 题目一.7-42 函数编程-分段函数:编写函数,计算下面分段函数的值. 1.本题PTA提交列表 2.设计思路 主函数中定义并输入x,调用子函数sum(x),子函数sum(x)针对x的不同取值有不同的y值.最后计算并输出y. 3.本题调试过程碰到问题及PTA提交列表情况说明. (1).编译错误:对函数的运用不够熟悉,exp函数写成epx函数,导致编译错误. (2).答案错误:还是答案格式出错,题目的格式是输出y=答案,而我直接输出答案. 4.代码截图. 题目二.7-1 求组合数

五、PTA结构体实验报告

五.PTA实验作业(结构体) 题目一:   1.本题PTA提交列表: 2.设计思路(包括流程图),主要描述题目算法 //设计思路,由题目可知 1.该题采用结构体,结构体内要定义一个数据域和一个指针域 2.定义两个变量max,和min用来标识最大最小值 3.在主函数中用动态内存来为数据分派配内存并且判断是否分配内存成功: 4.用for()循环来输入n个数据:先使最大最小值都为零,再通过for()循环用所有值一次判断是否都大于max,如果大于就max=i:同理min也是这么判断 5.最后要释放内存,

四、PTA指针实验报告

四.PTA实验作业(指针) 题目一:   1.本题PTA提交列表: 2.设计思路(包括流程图),主要描述题目算法 //设计思路,由题目可知 1.由于这道题不知道具体要输入数据,所以采用calloc来按要求进行分配内存 2用for()循环来输入数据,斌且进行数据的求和,在内层循环中再通过一一比较,就可以求出数据的最大最小值 3.最后释放不用的内存 4.输出平均值,最大值,最小值 最终的代码如下: 流程图如下: 3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试

第七章实验报告(数组实验)

C语言程序设计实验报告 实验项目: 1.一维数组的应用 2.二维数组的应用 3.字符数组应用 姓名:徐溢璠     实验地点: 514实验室       实验时间:2019年5月29日 一.实验目的与要求 1.一维数组的应用 定义一个一维整型数组,其大小为10,即它能存放10个数据: 使用循环语句,利用随机函数产生10个整数存放在数组中: 编写排序函数sort1(): 使用循环语句,将排好序的10个数依次输出. 2.二维数组的应用 怎样定义和使用二维数组: 怎样用循环进行二维数组中值的计算: 使

第七章数组实验报告

C程序设计实验报告 实验项目: 数组实验 姓名: 廖云福 实验地点: 514物联网实验室 实验时间:2019年5月29日 一实验项目 7.3.1一维数组的应用 7.3.2二维数组的应用 7.3.3字符数组的应用 一.实验目的和要求 a.掌握一维和多维数组的定义和数组元素的引用方法. b.了解一维数组和多维数组初始化方法. c.学习一维和多维数组的基本算法. d.掌握字符数组的定义.初始化方法和元素的引用方法. e.掌握C语言提供的对字符串进行处理的基本库函数. 二.实验内容 实验练习一.冒泡排序