一、PTA实验作业
题目1:7-2 求整数序列中出现次数最多的数
1. 本题PTA提交列表
2. 设计思路
- 定义变量n,i,j,max等于0,a[]10用于存放输入的值,b[10]用于存放a[]中各个数有多少个;
- 输入n的值
- i从0开始,每次加1,输入a[i]的值,直到i==n结束循环
- i从0开始,判断i是否<n,,进入下一步,每次加一,直到条件不满足
j从0开始,判断j是否<n,,进入下一步,每次加一,直到条件不满足
如果a[i]==a[j],b[i]加一
- i从0开始,判断i是否
- 输出a[j] 与max的值
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
当时由于创造一个新的数组c[]用来存放b[]导致本题的变量太多,中间某些地方写错,用Dev调试,变量太多,很难看清楚,后来将c[]删除,用b[]来做就做对了。
题目2:7-8 加法口诀表
1. 本题PTA提交列表
2. 设计思路
- 定义变量repeat,i,n;
- 输入repeat的值
- j从1开始,判断j是否<n+1,,a[o][j]每次加一,直到条件不满足
- 调用函数void arrange(int n);
- 定义变量a[][],i,j,op=‘+‘
- j从0开始,每次加1,a[0][j]=0,直到i==n+1结束循环
- i从1开始,判断i是否<n+1,,进入下一步,每次加一,直到条件不满足
j从0开始,判断j是否<n+1,,进入下一步,每次加一,直到条件不满足
a[i][j]等于j+i
- 输出op的值
j从0开始,输出a[0][j]进入下一步,每次加一,直到条件不满足
换行
从1开始,判断i是否<n+1,,进入下一步,每次加一,直到条件不满足
j从0开始,判断j是否<n+1,,进入下一步,每次加一,直到条件不满足
输出a[i][j]的值并且换行
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
本题要求每行最后一个数值后面没有空格直接换行,且占四列,我用了空格,后来改为3个空格,才明白四列是3个空格。
题目3:7-9 判断上三角矩阵
1. 本题PTA提交列表
2. 设计思路
- 定义变量T,n,i,j,k,a[][]
- 输入T的值
- i从0开始,每次加1,输入n的值,直到i==repeat结束循环
j从0开始,每次加1,进入下一步,直到i==nt结束循环
i从0开始,每次加1,输入a[i]的值,直到i==n结束循环
输入a[i][j]的值
- 调用函数s=arrange(a,n);
- 如果s=1,则输出Yes,否则输出No
- 定义变量ijs
- i从0开始,每次加1,进入,直到i==n结束循环
j从0开始,每次加1,进入下一步,直到i==nt结束循环
如果a[i][j]不等于0,s=0,跳出这个循环
- return s
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
刚开始以为是下面哪个部分错误,就从下往上一个个注释掉,后来才发现是scanf后面加了一个换行符号的错误。
二、截图本周题目集的PTA最后排名。
三、同学代码结对互评
杰伟的代码
我的代码
- 1.我和他代码不同的是对于加法的求和我是发现规律来求的a[i][j]=j+i; 他是用a[k][m]=a[0][k]+a[m][0];,他的这个方法适应性更强
- 2对于输出我用空格相对来说比他更简洁,代码量更少,用-4d考虑的因素太多了,更容易出错
四、本周学习总结
1.你学会了什么?
- 我学会了用rand实现计算机“自己”产生数字
- 我学会了用gets(),输入
1 C中如何存储字符串?
1.2 字符串的结束标志是什么,为什么要结束标志?
1.3 字符串输入有哪几种方法?
- scanf("%s",a);
- scanf("%c",p);
- gets(a);
1.4 数字字符怎么转整数,写个伪代码?
- 定义一个整数形变量i,和字符形变量j
- i等于j-字符0+0
1.5 16进制、二进制字符串如何转10进制?写伪代码?
16进制转成10进制
- 定义一个变量number为0,数组a[]
- 将16进制的字符串依次输入到a[i]中
- i从0开始,每次加1,进行下一步,直到a[i]==0结束循环
如果a[i]在0到9之间,number=number16+a[i]
如果a[i]在a到f之间,number=number16+a[i]-‘a’+a
如果a[i]在A到F之间,number=number*16+a[i]-‘A’+A
- 输出number
二进制转成10进制
- 定义一个变量number为0,数组a[]
- 将12进制的字符串依次输入到a[i]中
- i从0开始,每次加1,进行下一步,直到a[i]==0结束循环
number=number*2+a[i]
- 输出number
2.本周的内容,你还不会什么?
- 对于这个题目一点思路都没有
*对于这个题目不理解题意,导致课堂派的这道题完全不会填
- 对于gets(a),scanf(“%s”,a)运用不太熟悉
3.期中考试小结
33.1 你认为为什么没考好?
比如改错题
- n++改为n=n+2没有改出来
由于对于这道题的算法没有搞清楚,所以错误了
比如编程题
- 就是对于一元二次方程的x=[+ -(b^2-4ac)^(1/2)-b]/2a这个不会导致x1,x2没办法写出代码,把这个式子添加进去就正确了
3.3 下半学期要怎么调整C的学习?
- 我觉得我应该做好预习工作,改正我对课堂派不认真的态度。
- 在做pta应该要多花时间,不应该在一道题上纠结一天的时间,提高效率。
- 在老师讲完后,应该要回顾自己还不理解的地方,把它解决掉,在博客作业总结自己的一个星期学会与不会的内容。