- 博客(158)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 十分钟搞懂C语言的文件操作
一文搞懂C语言的文件操作本文参考:浙大版《C语言程序设计(第4版)》 目录什么是文件操作怎么实现文件操作其它的文件操作一、什么是文件操作?直接来看不太方便理解,我们把它分开。文件文件可以通过应用程序创建,如运行“记事本”程序,输入一些数据,然后保存并输入文件名,就会在磁盘中产生一个文本文件。刚刚我们创建的只是一种文件,叫做文本文件,还有好多其它类型的文件,每个文件都有自己的属性。文件的概念在操作系统中,文件是指驻留在外部介质(如磁盘等)中的一个有序数据集它可以是源文件
2021-12-16 22:16:05
1590
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 一文搞懂结构体变量占用多大内存空间(详细)
一、首先做一道例题感受一下请问下面定义的结构体变量aa在计算机内存中占用多少字节?#includemain(){struct student{ float height; short int age ; char sex ;}aa;printf("%d\n",sizeof(aa)); //屏幕上将显示多少?}错误解答:我们都知道,char类型占用1个字节,float型占用4个字节,short int类型占用2个字节,int型在VC6.0中占用4个
2021-12-15 19:23:46
7278
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【PTA基础题错题集】
1.语句int *p; *p=50;执行时,不会有任何错误分析:有错误,这个指针是空指针,没有对应的地址,直接赋值会出现错误。
2021-12-15 10:44:29
10523
5
原创 C语言获取当前时间
直接上代码#include <stdio.h>#include <time.h>int main(){ time_t tmpcal_t; struct tm *tmp_ptr = NULL; time(&tmpcal_t); tmp_ptr = localtime(&tmpcal_t); printf ("the time is:%d.%d.%d ", (1900+tmp_ptr->tm_year), (1+tmp_ptr->t
2022-04-23 08:13:32
4261
原创 一元多项式输入、输出、运算(基于链表)
题目描述测试程序#include <stdlib.h>#include <stdio.h>#define MAXLINE 1024// 交换 a, b,以t为中间变量#define SWAP(a,b,t) (t)=(a),(a)=(b),(b)=(t)// 单项式结构 typedef struct MonomialStruct{ int coef; // 系数 int expo; // 幂次 struct MonomialSt
2022-03-21 19:27:23
4114
1
原创 复杂度的渐进表示
复杂度的渐进表示1. O(n)(常用)T(n)=O(f(n))T(n)=O(f(n))T(n)=O(f(n))这个式子表示存在常数C>0C>0C>0 n0>0n_0 >0n0>0使得当 n>=n0n>=n_0n>=n0 时,T(n)<=C∗O(f(n))T(n)<=C*O(f(n))T(n)<=C∗O(f(n))简单来说,O(f(n))O(f(n))O(f(n)) 表示的就是f(n)f(n)f(n)的复杂度中的某个上界例如
2022-03-07 15:16:21
276
原创 C++ sort自定义cmp的细节
cmp函数在书写时,一定不要写出“return a <= b”的语句,否则程序就有崩溃的风险,这种错误极难观察出来,所以一定要注意。关于原因,我看了好多好多博客,这一篇最终解决了我的困惑关键就是一个词:严格弱序比较链接:https://blog.csdn.net/llz62378/article/details/88937139...
2022-02-22 16:42:39
685
原创 C++ 引用和传参的区别
C++ 引用和传参的区别直接看代码#include<bits/stdc++.h>using namespace std;void func1(int &a){ a = 100; return ;}void func2(int a){ a = 100; return ;}void func3(int *a){ *a = 100; return ;}int main(){ int a = 0; int b = 0; int c = 0; func1(a
2022-02-21 14:29:45
357
原创 C++ string 的substr的使用方法
C++ string 的substr的使用方法直接看代码#include<bits/stdc++.h>using namespace std;int main(){ string s = "Hello world !"; cout<< s.substr(1)<< endl;//下标从1开始到结束 cout<< s.substr(1, 4);//下标从1开始后4个字符 return 0;}输出结果...
2022-02-21 14:19:41
676
原创 python strip()函数使用方法
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。如果我们想要删除指定字符或多个字符,当然也是可以的语法str.strip([chars]);我们举个例子str1 = ' ccccc 'str2 = '1123ccccc2211'print(str1.strip())print(str2.strip('1'))print(str2.strip('12'))print(str2.strip('123'))程序运行结果ccccc23ccccc22
2022-02-04 09:49:25
1622
原创 python join()函数使用方法
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。(既可以连接列表List,也可以连接元组tuple)举个例子吧str1 = '-'str2 = ''str3 = '+'List = ['a', 'b', 'c']# List = ('a', 'b', 'c')print(str1.join(List))print(str2.join(List))print(str3.join(List))运行结果a-b-cabca+b+c由上我们就了
2022-02-03 23:44:59
7543
原创 1015 Reversible Primes (20 分)(测试点三)
一、题目链接二、算法分析这里借鉴网上一位兄弟的分析(原文链接)三、测试点这里我错在了测试点3,问题在于一个较大的数转化为二进制之后用int类型存储可能放不下,因此改为longlong即可。四、代码实现#include<bits/stdc++.h>using namespace std;int convert(int test, int radix){ long long tot = 0; int sum = 0, p = 1; while(test){ tot = t
2022-02-03 00:00:09
1392
1
原创 1014 Waiting in Line (30 分)(测试点2,4,5)
文章目录题目链接算法分析测试点分析代码实现学习柳神题目链接算法分析这里我用的是结构体,分别是counter(柜台)和per(用户)分别记录柜台的信息和人的信息然后从时间0到时间540跑一次循环,进行实时更迭然后对于每次询问,用这个人的开始时间和结束时间来判断能否服务以及输出结果测试点分析测试点2,4,5都是有关输出的问题(1)对于2,5的情况:一个人如果开始时间在540之前(不包括540)即使结束时间超过540,依旧要服务(2)对于4的情况:一个人如果在银行关门的时候都没排上队,那么输出
2022-01-30 14:39:20
905
2
原创 Chrome的headless配置语句(可粘贴)
from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionschrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')#path为自己的chrome.exe位置,我这里写的是我自己电脑中的位置path = r'C:\Users\8
2022-01-30 10:00:05
1523
原创 关于from selenium import webdriver运行时报错
首先要成功安装selenium我一开始的问题是文件名取了selnium.py然后一直报错,改一个其它名即可之后,报错就变了也就是说编译器显示都正常,一运行就有bug然后我发现了解决的办法左上角文件-设置-python解释器在其中找到selenium,检查版本如果过新,可能会导致不能正常使用我一开始用的4.1.0,后来改为3.11.0就好了祝愿你能尽快调出来!QWQ...
2022-01-29 15:27:55
12462
1
原创 如何解决爬虫爬取的不是高清图
只要把url中的‘_s’删掉即可使用以下代码:url = url.replace('_s', '')快去试试吧!QWQ
2022-01-27 10:39:21
2960
2
原创 获取Xpath的两种方法
方法一:利用chrome插件Xpath Helper打开一个网页,按下ctrl+shift+x显示插件按F12在“检查”中找到特殊的标签,并在QUERY内输入想要验证的标签当result显示为1时,即表明该标签唯一确定你想要的元素方法二:直接在“检查”页中定位按F12打开检查页,然后点击右上角定位键之后在网页中找到你想要的元素并点击然后对高亮部分按下鼠标右键,找到copy,然后选择xpath即可...
2022-01-26 11:02:59
6127
原创 1013 Battle Over Cities (25 分)(测试点2)
1013 Battle Over Cities (25 分)题目链接算法分析最终采用了DFS求连通分量数目,然后减去一的值即为题目答案。测试点我卡在测试点二好久,上网看到有的人用并查集也出现了测试点二卡住的情况,测试点二应该是一个这样的问题——是否有重复合并的情况,我修改了好久我最初思路的代码,最后也没通过(如果使用并查集来处理,应该不会出现这样的情况)错误代码1#include<bits/stdc++.h>using namespace std;#define N 50000
2022-01-25 13:29:41
515
原创 怎样自己亲手搭建一个四比特加法器
如何用三极管搭建一个四比特加法器一、前言作为大一上学期第一个大作业,最终还是拖到了冬学期的第八周,从第七周的周六开始,一直到第八周周五上午课上展示,中间连续熬了好几天的夜,另外,白天凡是有时间都用在研究它了,最终大约是用了30个小时,完成了这个四比特加法器的“从零到一”。最终,小组得分92,个人分数100(贡献比35%),也不枉自己投入的心血二、器材电阻 1 包(10kΩ×100,1kΩ×50)三极管 1 包(9013×100,LED×6)跳线 3 短 1.5 长电源 1 个USB 线
2022-01-24 11:16:45
7709
13
原创 1012 The Best Rank (25 分)(测试点二)
1012 The Best Rank (25 分)题目链接算法分析优先队列+数组分四种情况(C、M、E、A)压入优先队列中然后把每个科目的排名存在各自的数组中然后每种情况进行查询即可测试点测试点二:成绩相同我虽然注意到了这一点,但是并没有过原因在于:对于这样一组数据98 95 96 95 92排名数据为:1 3 2 3 5而不是:1 3 2 3 4改过之后就满分了!代码实现#include<bits/stdc++.h>using namespace std;#
2022-01-21 19:42:07
5439
原创 1011 World Cup Betting (20 分)
1011 World Cup Betting (20 分)题目链接算法分析模拟一下题目要求就好,主要考察英语能力(bushi代码实现#include<bits/stdc++.h>using namespace std;#define N 10char Cr[N] = {'0', 'W', 'T', 'L'};int main(){ double tot = 1, x, Max; int Max_t; for(int i = 1; i <= 3; ++ i){ M
2022-01-21 18:03:10
293
原创 1010 Radix (25 分)
1010 Radix (25 分)题目链接题目思路二分法+进制转换核心的点有以下几个:1.上下界的确定:上界是给定进制的那个数的十进制值,下界是未给定进制的数中最大字符的值加一2.溢出的问题:尽管我们采用long long,但是仍然可能溢出,所以我们要做好特判防止错解。3.二分法的模板结构代码实现#include<bits/stdc++.h>using namespace std;long long trans(string s, long long radix){ in
2022-01-15 18:36:59
122
原创 逻辑运算符的性能优化(短路问题)
逻辑运算符的性能优化(短路问题)在Python中存在这样的规则我们举个例子a = 35a > 32 and print('我被运行了')输出结果:我被运行了a = 35a > 38 and print('我被运行了')无输出结果a = 35a > 32 or print('我被运行了')无输出结果a = 35a > 38 or print('我被运行了')输出结果:我被运行了从上面的代码和它的输出结果来看,Python中存在这样的规则
2022-01-13 14:50:06
350
原创 1009 Product of Polynomials (25 分)
1009 Product of Polynomials (25 分)题目链接算法分析用结构体存储需要计算的两个多项式,然后用双层循环计算结果多项式代码实现#include<bits/stdc++.h>using namespace std;#define N 2005typedef struct{ int exp[N]; double coe[N];}POL;POL A, B, Ans;int t;int main(){ int n, m; scanf("%d",
2022-01-12 16:39:33
108
原创 1008 Elevator (20 分)(测试点2,3,6)
1008 Elevator (20 分)题目链接算法分析首先读懂题目的意思,它给定N个正数(有给定的顺序),让我们去模拟这个电梯上下运行的过程,然后输出其总运行时间。测试点我第一次错的测试点2,3,6原因在于: 相邻两个数相同的情况——移动时间为0,停留时间增加5s代码实现#include<bits/stdc++.h>using namespace std;int main(){ int n; scanf("%d", &n); int now = 0, tot
2022-01-12 15:50:30
236
1
原创 ASCII的最大值到底是127还是255
ASCII问题引入我们知道,字符类型占一个字节,也就是八位,那平时我们所讲的ASCII范围只是0-127啊,那也就才7位,剩下的那一位呢?解释我们所讲的是标准ASCII,范围是0-127,剩下的那一位是置为0的,不过后来我们发现,这些字符不太能满足我们的需要,所以就有了扩展ASCII,范围是0-255,正好占八位(一个字节),下面摘录一段百度百科的内容。摘录ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。前128个叫标准ASCII 码,也叫基础ASCI
2022-01-05 11:19:42
8748
3
原创 1007 Maximum Subsequence Sum (25 分)(测试点2、5、6)
1007 Maximum Subsequence Sum (25 分)题目链接算法分析我用了vector数据结构,来存可能为解的和为整数的连续子列,然后再对每一个子列进行处理,末尾的负数和0给删掉,然后输出结果就可以了。测试点五一直报“段错误”,最后发现是用vector的pop_back导致段错误。修改了一下就没问题了。代码实现#include<bits/stdc++.h>using namespace std;#define N 10005int t;int SK[N]
2022-01-04 14:14:48
903
原创 运算符优先级与结合顺序
其实把优先级表背下来之后,判断优先级时会遇到两个问题。(1)优先级不同:以优先级为准,与结合顺序无关。(2)优先级相同:按照结合顺序依次计算。
2022-01-03 20:12:50
281
原创 1006 Sign In and Sign Out (25 分)
1006 Sign In and Sign Out (25 分)题目链接算法分析开两个结构体数组,用sort排序即可代码实现#include<bits/stdc++.h>using namespace std;#define N 10005typedef struct{ string name; string in; string out;}ind;ind tma[N], tmb[N];bool cmp1(const ind a, const ind b){ ret
2021-12-22 09:59:17
192
1
原创 复数四则运算(二十三行简洁代码)
本题要求编写程序,计算2个复数的和、差、积、商。输入格式:输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。输出格式:分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0。输入样例1:2 3.08 -2.04 5.06结尾无空行输出样例1:(2.0+3.1i) + (-2
2021-12-19 23:35:07
345
2
原创 古风排版 (20 分)(测试点4)
古风排版 (20 分)中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。测试点四:我一开始把二位结果数组开成了这样:然后发现:后来仔细一想,可能是二维的大小开小了(我认为这就是出题人的锅)改成这样就能过?题干里面说的又是1000的大小,我不理
2021-12-19 21:44:26
793
5
原创 1005 Spell It Right (20 分)(测试点3)
1005 Spell It Right (20 分)题目链接一、算法分析用字符串读入,计算总和,然后把每一位分离开来,然后就把它对应的英文形式输出就好二、测试点我错在测试点3,问题出在没有考虑只输入一个0的情况,所以加一个特判就行。三、代码实现#include<bits/stdc++.h>using namespace std;#define N 105#define M 15char eng[M][M] = {"zero", "one", "two", "three",
2021-12-16 15:34:50
272
原创 1004 Counting Leaves (30 分)
1004 Counting Leaves (30 分)题目链接一、算法分析用两个vector容器存下来关系图和层图(我姑且这么叫吧)读入数据时,把每个父节点的子节点压到关系图里面。分析数据时,按层进行循环,把这一层的节点的子节点压入下一层,并完成叶节点计算。二、代码实现#include<bits/stdc++.h>using namespace std;#define N 105vector< int >vec[N];vector< int >rel
2021-12-16 15:25:41
223
原创 一元多项式的乘法与加法运算 (20 分)
一元多项式的乘法与加法运算 (20 分)题目链接一、算法分析用结构题读入,然后用两个数组分别记录加法和乘法的结果。加法可以在读入时就计算好,乘法可以在读入后跑一次两层循环。二、测试点2、3:注意0多项式的情况三、代码实现#include<bits/stdc++.h>using namespace std;#define N 2005struct tp{ int coe; int index;}poly1[N], poly2[N];int ans_plus[N], an
2021-12-16 09:44:34
1325
原创 结构体类型的三种声明方式
方法一有类型名称且声明的结构体变量直接跟在后面。如果不直接跟在后面声明,接下来就无法声明结构体变量。struct node{ int x; int y;}a;方法二有类型名称,声明的结构体变量不直接跟在后面。弥补了方法一的缺陷,可以不直接在结构体定义时声明。struct node{ int x; int y;};struct node a;注意:上述代码在C或C++编译环境下都不报错。但是如果写成下面这种形式,在C编译环境下会报错,而在C++下不报错。struct nod
2021-12-15 11:58:00
3264
原创 单链表逆转
单链表逆转题目链接一、算法分析记录一个前驱指针lt,后继指针nt,进入循环后逐个向后进行处理即可。这里要注意空链表的情况,因为空链表并没有对任何元素的前驱和后继初始化按照常规情况调用就会出现段错误二、代码实现#include <stdio.h>#include <stdlib.h>typedef int ElementType;typedef struct Node *PtrToNode;struct Node { ElementType Data;
2021-12-15 08:46:54
504
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人