数组
数组
一、PTA实验作业
题目1:7-2
1. 本题PTA提交列表。
2.设计思路:本题要求一个数组中的最大值及下标。先假设最大值是第一个数,再对数组中的数进行遍历,比如第二个数大于第一个数时,第二个数就替换第一个数成为最大值,再去与第三个数比较,依次类推,循环结束后便可以得到最大值及它的下标。
3. 代码截图。
4.本题调试过程碰到问题及PTA提交列表情况说明。
这题答案未能完全正确是因为在if判断条件那里出了错,条件是a[i]>a[0],这样令之后更大的数只能与a[0]比较,无法与已知最大值比较,导致出错。解决方法就是改变判断条件为a[i]>a[max]。
题目2:7-6
1.本题PTA提交列表。
2.设计思路:本题要求输出进行k次的冒泡排序后的数组,所以要先设置一个循环k次的循环条件。再对数组进行排序。从第一个数开始,与下一个数进行比较,如果前一个数比下一个数大,则交换,否则不交换。依此循环k次,然后输出排序后的数组。
3.代码截图。
4. 本题调试过程碰到问题及PTA提交列表情况说明。
错误原因是因为多了一个循环嵌套,i没有用于循环的其他地方,所以只能控制循环次数,而应该控制次数的是for(t=0;t<k;t++)语句,所以导致错误。解决方法是删除此条语句。
题目3:7-10
1. 本题PTA提交列表。
2. 设计思路:首先将除最后一列和最后一行的数进行遍历,如果不是在副对角线上的数,就相加,是,则减去。最后得到的数便是题目要求的和。
3. 代码截图。
4. 本题调试过程碰到问题及PTA提交列表情况说明。
本题出错的原因是没有正确判断当元素在副对角线上的时候,代表行列的变量i,j的数学关系,导致出错。
二、同学互评。
1.互评同学名字:朱佳楠。
2. ①我的代码(7-10)
②同学代码(7-10)
3.代码异同。
我的代码和朱佳楠同学的代码并无多大差异,主要差异就是她用了三个条件来找出题目要求的数,最后相加,而我是将一部分数加起来,减去多余的数。相比之下,我更喜欢我的代码,虽然朱佳楠同学能熟练运用continue,但是我的方法更为简单,代码主要部分也更为简短。
三、截图本周题目集的PTA最后排名。
四、本周学习总结。
1.你学会了什么?
①我学会了用数组储存数字和字符串。
②输入输出字符串可以用%s,也可以用gets和puts。用%s存储字符串时,如果输入空格,系统直接认为字符串结束。而gets则会收入整个字符串知道换行。%c是逐个输出字母。
③学会用strlen(计算字符串的长度), strcat(连接两个字符串), strcmp(比较字符串的长度),strcpy(将一个字符串粘贴到另一个)处理字符串。
④使用二维数组解决矩阵相关的问题。
⑤使用选择排序法和冒泡排序法为数组中的数按一定顺序排列。
2.本周的内容,你还不会什么?
①对于字符串的运用,如删除,插入等不能熟练运用。我会通过练习和分析去理解它们。
②PTA:7-7,7-8,7-9,7-16,7-19,7-20,7-25,7-28,7-29,7-30