C语言I博客作业03
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11453 |
这个作业的目标 | 从PTA题目集中选出3个你最满意的题目完成老师安排的作业要求;去阅读他人的优秀代码,挖取自己学习的地方,补短;完成好自己本周的学习感悟与学习总结。 |
学号 | 20208980 |
1.PTA实验作业(15分/题)
1.1:2-18 求组合数 (20分)
1.1.1实验代码截图:
1.1.2数据处理
数据表达:变量是 n,m,c 数据类型是基本类型中的整数类型int 实型double 变量是通过定义而来,自定义函数double fact(int n);
数据处理:标准库函数<stdio.h> 最重要的是自定义了函数,从而达到阶乘的计算,顺序结构
1.1.3 PTA提交列表及说明:
说明:
Q1:一开始编译错误,报错位置很多。
A1:仔细检查后发现有几处不太显眼的位置的 ; 没有,才导致整行报错
Q2:一开始此句错误
c=fact(n)/fact(m)*fact(n-m);
A2:改正后
c=fact(n)/fact(m)/fact(n-m);
问题是对算数优先级掌握不熟 存在问题
1.2:L1-056 猜数字 (20分)
1.2.1 实验代码截图:
1.2.2 数据处理
数据表达:变量是num name[10] i n sum=0 数据类型是基本类型中的整数类型int 实型类型double 变量是通过定义,赋值而来,其中还输入了数组数据。
数据处理:运用for的循环结构,if的判断语句 运用了两个库函数<stdio.h> <string.h>
1.2.3 PTA提交列表及说明
说明:
Q1:一开始编译错误贯穿我的整个程序。
A1:小错误居多,出现各类问题,符号漏打,未对齐整;编写有时来劲,就毛病都冒出来了。
Q2:过程中的格式错误。
A2:调试报错是对格式错误最好的解释,精心设计一批测试用例,然后分别用这些测试用例运行程序,看程序的实际运行结果与预期输出结果是否一致,这是软件测试的基本思想,如果发现运行结果有错误,就要调试程序,查出并改正错误,程序的测试和调试需要反复的进行。测试用例越多,越能找到潜在的错误,但是也要量力而行。
1.3:L1-034 点赞 (20分)
1.3.1 实验代码截图:
1.3.2 数据处理
数据表达:数组m[1000]={0} 常量a b c d e=999 变量N n 数据类型是基本类型中的整数类型int 变量是通过定义指定而来,a b c d e通过了赋值,其中还输入了数组数据。
数据处理:调用printf() scanf()函数 来自库函数<stdio.h> 程序结构是for循环来串联的
1.3.3 PTA提交列表及说明
说明:
Q1:单处小错误的解决办法
A1:先扫描自己的源程序,是否能直接查出错误,再去通过调试,我自己的问题出在12行,m c-1++; 改正后:m [c-1]++;
2.阅读代码(-5——5分)
class Solution {
public:
/*int lengthOfLongestSubstring(string s) { //之前的代码,复杂度O(n^2)
int size,i=0,j,k,max=0;
size = s.size();
for(j = 0;j<size;j++){
for(k = i;k<j;k++)
if(s[k]==s[j]){
i = k+1;
break;
}
if(j-i+1 > max)
max = j-i+1;
}
return max;
}*/
int hashmap[130];
int lengthOfLongestSubstring(string s) { //双指针滑动窗口
int max=0;
int n = s.size();
for(int i=0,j=0;j<n;j++){//当前判断是否重复的串为s[i..j]
hashmap[s[j]]++;
while(hashmap[s[j]]>1){
hashmap[s[i++]]--; //i指针右移
}
if(j-i+1>max)
max = j-i+1;
}
return max;
}
};
这是来自力扣题库的热题,该题解的作者收到广泛的好评,做到后面突然想到这题之前的写法不太行,之前写的代码实际上也是暴力,复杂度最差也是暴力,只是简单的优化了一下。时间复杂度为的算法双指针滑动窗口,空间复杂度,代码是用哈希表的一种写法,也可以使用集合。总的来说这次的代码比上次的代码在很多地方上做了优化,虽然也有比上次繁琐的地方,但是就整体而言整个代码还是做了优化。这是我值得学习的地方。
3.学习总结(15分)
3.1 学习进度条(5分)
3.2 累积代码行和博客字数(5分)