勉强完成了这周的小项目,经历了无数次的改buf,写的不是很好,但是还是完成了基本功能,还是很开心的,这次写项目也学到很多东西,再接再厉!!! #include<stdio.h> #include<string.h> #include<stdlib.h> #include<stdlib.h> #include<time.h> #include<sys/stat.h> #include<unistd.h> #include<sys/types.h> #include<limits.h> #include<dirent.h> #include<grp.h> #include<pwd.h> #include<errno.h> #define PARM_NONE 0 #define PARM_A 1//将参数定义好 #define PARM_L 2 #define PARM_R 4 #define MAXLEN 继续阅读 >>


陈文浩 17/07/23 22:32:22
一、插入,删除 1.基本知识 num=['1','2','3','4'] #这个就是列表 >>>print(num[0]) 1 >>>print(num) ['1','2','3','4']  >>>print(num[-1])#表示列表的最后一个元素 4 2.修改元素 num[0]='change' num=['change','2','3','4']  3.添加元素append >>>num.append('5')#在尾部添加元素 4.插入元素insert sum=['0','1'] >>>sum.insert(2,'2')#二表示第二个位置 sum=['0','1','2'] 5.del删除语句 sum=['0','1'] >>>del sum[0] sum=['1'] 6.pop删除元素 ①只有pop( )删除尾部元素 sum=['0', '1',‘2’,'3'] >>>sum.pop() sum=[ 继续阅读 >>


陈文浩 17/07/23 22:15:43
一、linux几个目录 1. /bin 用于储存普通用户可执行的命令,如ls,cp 2. /boot linux内核及启动系统是所需要的文件,保证启动文件安全 3. /dev 设备文件的储存目录,如硬盘,光驱(更体现一切皆文件) 4. /etc 用于存放系统的配置文件,比如账户密码 5. /home 普通用户主目录 6. /lib 用于存放各种库文件 7. /proc 该目录是一个虚拟文件系统,只有在系统运行时才存在。可以获取系统的状态信息并且修改某些系统的配置信息。cat/proc/memifo可以获取系统内存的使用状态 8. /sbin是用来存放用于管理系统的命令 9. /tmp 临时文件目录 10. /usr 用于存放系统应用程序及相关文件,如说明文档,帮助文档 11. /var用于存放系统中经常变化的文件,如日志文件,用户邮件 二、文件系统模型 物理磁盘的访问都是通过设备驱动程序进行的。对设备驱动的访问有两种途径:1、通过设备驱动本身提供的接口 2、通过虚拟文件系统提供给上层应 继续阅读 >>


陈文浩 17/07/23 14:11:46
今天康康学长讲到了链表环的问题,觉得蛮好玩的,我觉得值得记一下 一、判断是否有环 //判断是否有环的关键,就是使用快慢指针,看两者是否会重合 link *fast,*slow;//快慢指针 link *meet;//相遇指针 fast=head,low=head; int flag=0; while(fast&&fast->next) { fast=fast->next->next; low=low->next; if(slow==fast) { meet=slow;//也可以等于fast flag=1; break; } } if(flag) printf("有环\n"); else printf("无环\n" 继续阅读 >>


陈文浩 17/07/19 22:55:16
1017. A除以B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔。 输出格式: 在1行中依次输出Q和R,中间以1空格分隔。 输入样例: 123456789050987654321 7 输出样例: 17636684150141093474 3#include <stdio.h> #include <stdio.h> #include <string.h> void func(char *s, int n) { int i,r[strlen(s)]; int m = 0; for ( 继续阅读 >>


陈文浩 17/07/09 14:33:48
之前一直以为字节对齐没有问题,结果今天看书的时候发现了自己这部分还是掌握的不太好 1.先说最简单的 #include<stdio.h> #include<string.h> union data1{ double d; int i; char c1; char c2[9]; }; int main() { printf("%d",sizeof(union data1)); return 0; } 因为最大的类型是double8字节,所以以8字节对齐,char[9]自然分配了16字节 所以共用体占16字节 2.注意!!!不能固定记忆一定是以4字节取 #include<stdio.h> #include<string.h> struct data1{ char c1; char c2[2]; }; int main() { printf("%d",sizeof(struct data1)); 继续阅读 >>


陈文浩 17/07/08 12:50:12
一直以来不会链表的排序,我之前把排序想的太过复杂,只想着移动链表,但是东林学长启发我,只需要交换数据域就可以排序链表让我恍然大悟!(感谢我们的东林学长)于是很快的写了一个链表合并和排序。 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct link{ int date; struct link *next; }link; int main() { int i,j; int t; int date; link *p,*q,*k,*head1=NULL,*head2=NULL;//两个头指针 int m,n; printf("请输入第一个链表长度:"); scanf("%d",&n); printf("请输入数据:"); for(i=1;i<=n;i++) { 继续阅读 >>


陈文浩 17/06/27 20:12:43
题目描述 特大整数用长整型也存不下,如果用双精度实型存储则会造成误差,可以用字符数组存储所有位,再按十进制由低到高逐位相加,同时考虑进位。 特别提示:假设特大整数不超过30位。参与操作的数据中,被减数>减数。 算法分析: 1.初始化:将两个特大整数输入两个字符数组,将两个字符数组的各元素右移,使最低位的元素位置对齐,高位补0,为了存储最高位的进位,位数多的数最高位前也应补一个0。 2.从最低位对应的数组元素开始将数字字符转换为整型数据相加,因为数字字符‘0’对应的ASCII值是48,则:整型数据1+2,相当于 ('1'-48)+('2'-48),即'1'+'2'-96。 3.将和整除以10,余数就是该位的结果,并转换为字符(整型数据+48)存入该位,商就是进位数。 4.再对高一位对应的数组元素操作,将该位数字字符转换为整型相加,并与低位的进位数相加,将和整除以10,余数就是该位的结果,商就是本位的进位数。 5.重复4直到最高位。如果最高位相加时进位数大于0则将此进位数转换为 继续阅读 >>


陈文浩 17/06/18 19:45:57
以前上机只是觉得vim很烦人,不能干很多事情,现在学了很多vim里面的知识,发现只用键盘就可以干很多事情,不用再把gedit召唤出来在不同文件下复制和删除(一直觉得这种方式很烦人,那时还感觉windows好用),最近vim下让我觉得很多东西更加便利,就做了一些简单总结 1.程序打开后的复制,黏贴,复原(最需要的快捷命令) ①复制:最常用的yy,可以直接复制一行 nyy是从光标所在行向下复制,yG是复制所在行一直复制到文件结束,y0是复制所在行一直到文件开头 y$复制所在光标那个字符到该行末尾(最神奇功能) ②黏贴:p是向光标下一行黏贴,P是向光标上一行黏贴 ③复原(这个简直是我的福音):每次总会在不小心删除内容而懊悔,有了u感觉舒服多了(但是如果修改之后用了:w,u这个宝贝也用不了了,切记不小心删除东西,用exc键退出插入模式,立即按u) 2.快速到达文件指定部位 ①gg和1G都是快速到达文件头部 ②G是快速到达文件尾部 ③nG是移动到文件第几行(和光标无关) ④n【回车】是从光标向下移动n行 ⑤数字0或者Home键是回到行首 $或者End是回到行末尾 3. 继续阅读 >>


陈文浩 17/06/13 18:37:28
1、基本函数fclose,fopen,fprintf,fscanf,fseek,ftell,rewind,fread,fwrite 2、对于fseek中SEEK_SET=0(起始位置),SEEK_CUR=1(当前位置),SEEK_END=2(结束) 3、注意FILE这个文件指针其实是一个结构体 4、对于打开文件的读写方式: ①对于txt文件:rt+(允许读写,不能建立文件)、wt+(允许读写和建立文件)、at+(允许读,或者在文件末尾追加) ②rb+,wb+ ,ab+ 是对于二进制文件 注意:a.哪种r在文件不存在的情况下都不会建立新文件    b.用w打开文件,如果写入东西,会把原来文件内容全部覆盖 5、计算文件大小(对linux也适用的方法),适用fseek,ftell #include<stdio.h> #include<stdlib.h> int getFileSize(char * strFileName) { 继续阅读 >>


陈文浩 17/06/08 21:48:03