错题集
__心似大海__
本科生
展开
-
有bug就要debug啊。。。
今天下午遇到了bug,其实debug一下很快就找到了,有人偏要自己干瞪眼找,嗯,然后时间就这样过去了。原创 2023-05-22 17:06:54 · 57 阅读 · 0 评论 -
【已解决】记selenium 键鼠操作失效bug
第二行无效的原因可能是①输入框 `suggest_top_input` 没有获得焦点,点击一下就好。②元素没来得及加载,睡眠等一下就好。原创 2023-05-14 09:59:25 · 731 阅读 · 1 评论 -
csapp attacklab 报segmentation fault
记录一个找了一个小时的bugattacklab level1 输入40个无意义的16进制数再加上touch1地址,就报了segment fault。GDB检查%eax的值,发现前40个没问题,问题在于touch1 地址找错了,程序run起来,然后在输入字符串之后,touch1 的地址会改变。而我使用的是run之前的touch1 地址,所以不对。原创 2022-10-30 10:57:00 · 920 阅读 · 3 评论 -
leetcode278.第一个错误的版本
原题:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用bool isBadVersion(version)接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。样例:输入:n ..原创 2022-01-10 15:45:46 · 80 阅读 · 0 评论 -
006:删除字符
这题我一开始思路有问题。我本来通过把a向后移动的方式删除,但其实这个题只要把非a 字符拿出来即可。调整好思路后,这题完成起来很快。中间有一个小的插曲,malloc 不能用于全局字符指针分配空间,所以我改用了字符数组。#include<stdio.h>#include<stdlib.h>char a[1000];char c;void delchar(char *str,char c){ int i,j=0; for(i=0;str[i]!='\0';...原创 2021-10-27 09:52:14 · 217 阅读 · 0 评论 -
005:递归统计素数
网上能够找到的使用C语言递归统计素数的文章比较少,因此写一篇,仅供参考,如有疏漏欢迎指正。我用到的统计素数方法,是先开一个 notprime数组,里面的数值只有0,1。notprime[i],当i是素数,notprime[i]为0;反之为1。之所以要这样设置,是因为非素数的数相对好判断(只要找到非1非本身的因数即可),所以先把notprime[非素数]赋值成1,其余是零。代码如下int notprime[1005]={0};void init(){ notprime[1..原创 2021-10-27 09:21:36 · 1046 阅读 · 0 评论 -
004:递归不一定要有返回值;void 返回值递归(recursion)
今天做题遇到了这样一道题:要用递归但是函数没有返回值。想用除二取余法,但是最后要把余数逆序,又不能使用返回值,一开始不知道怎么处理。解决方法:利用函数调用的特点:遇到函数时,主函数暂停,先执行当前被调用的函数,完了之后再继续主函数。也就是调用栈的“后进先出”特点。使用了flag 是因为让这个函数能输出0的二进制数。#include<stdio.h>void dectobin(int n){ static int flag=0;//flag用于判断参数n==.原创 2021-10-23 10:08:30 · 2500 阅读 · 0 评论 -
003:(非PTA)使用函数实现字符串部分复制
能找到的类似题解 都是PTA上的那道。我自己写了一个另外的。供参考。#include<stdio.h>int len =0;void strmcpy(char*t,int m,char*s){ int j=0; if(m>len) { printf(""); //输出空串的方法 } else { while(t[m]!='\0') { s[j]=t[m]; j++; m++; } s[j]='\0';//因为...原创 2021-10-16 20:53:06 · 98 阅读 · 0 评论 -
错题002:数组循环右移
本题用到了指针动态分配内存,和一个实现“头尾相接”的技巧。#include<stdio.h>#include<stdlib.h>int main(){ int *p,i,m,n,a; scanf("%d%d",&n,&m); if((p=(int*)calloc(n,sizeof(int)))==NULL){ exit(1); } for(i=0;i<n;i++) { scanf("%d",p+(i+m)%n); //直接在...原创 2021-10-14 16:55:24 · 136 阅读 · 0 评论 -
错题集001:找出数组中出现最多的数
Description:有一个长度为n的整数数组,请你找出数组中出现次数最多的整数。我的思路是用c[i]数组储存i出现的次数,其余没出现过的数全部为0。这样显然有浪费储存空间的问题。在考虑改进为用c[i]储存s[i]出现的次数,这样c[]数组的长度就等于s[i]的长度。这个题卡住了一次,原因在于没有写***那行代码#include<stdio.h>int main(){ int n,i,max,x; scanf("%d",&n); int s[原创 2021-10-12 19:20:25 · 111 阅读 · 0 评论