链表是一种很重要的数据结构,它由两部分组成,第一个部分是我们要储存的数据,第二个部分是指向下一个储存单元的指针。链表在使用中有顺序表无法比拟的灵活性,免去了储存空间不够,又有可能浪费的尴尬。单链表有一个头指针pHead,当我们没有数据要储存的时候它指向NULL,当我们有数据的时候它指向第一块储存单元。储存单元里面有两个部分,前面的部分是我们要储存的数据data,后面的部分是指向下一个储存单元的指针
if语句都会用,但是有一些小细节并不容易被发现。比如我们不应该写这样的代码:if(flag==0)flag为布尔变量,布尔变量的值为真或假,用0表示假,真是多少是不一样的。所以我们应该避免将布尔变量与0或1这样的整型值进行比较。那么我们也不应该写这样的代码:if(i)i为一个整型变量,但是写成上面那样就会被人误以为是布尔值,良好的编程习惯是这样的:if(i==0)或if(i!=0)还有重要的一点是
快速排序就是首先找到一个基准点,之后把比它小的都放到左边(升序排序),把比它大的都放到右边去,然后把基准点归位到中间处,最后对数组中的前后两部分进行同样的步骤就可以完成快速排序。程序中用递归的方式来完成。下面是代码#include<stdio.h> void quicksort(int src[], int left, int&nbs
atoi函数就是把一串字符串转换为int型整数的函数,通过将字符串中的字符一个一个强制类型转换,并且存入一个临时数组中,再将数组中的数字处理一下即可得到我们需要的整数。实现这个函数的过程中,我们需要注意负数的处理,要进行一次判断,确定返回值的正负。其他的字符按照ASCII码表进行转换即可。下面是代码:#include<stdio.h> #include<math.h> i
#include<stdio.h> #include<string.h> void str_bobble_sort(char *a[],int count) { int i = 0, j =0 ; for (i = 0; i &l
#include<stdio.h> #include<assert.h> //指针streln //int my_strlen(const char *src) //{ // int count = 0; // while (*src++) // count++; // return co
说到输出首先就想到了printf函数,例如: char *p="123456789"; printf("123456789"); printf("%s","123456789"); printf(p);那有没有其他方法呢,我查阅了一些资料。比如用fputs函数fputs(p,stdout);这样也可以在屏幕上打印出123456789用puts函数puts(p);可以打印出123456789并且
#include<stdio.h> void reverse(const int *start,const int *end) { int *tstart = start; while (start != end) { int *left =&n
看了看以前写的程序,觉得应该再写一次。#include<stdio.h> #include<string.h> char* find(char *left, char *right,int len) { char k; char *mid= left + len&nb
#include<stdio.h> #include<assert.h> void reverse_string(char * start,char * end) { assert(start); assert(end); char tmp; if (start < e
递归的方法 #include<stdio.h> int my_power(int n,int k) { if (k-- > 1) n*=my_power(n, k); return n; } int main() { int n = 0, 
#include<stdio.h> #include<string.h> void reverse(char *left, char *right) { while (right > left) { char tmp = *right; *right&n
#include<stdio.h> #include<string.h> #include<assert.h> int getline(char line[],int limits) { int i = 0; int ch = 0; while ((li
最近的一个星期,其他的事情很多,恰逢考试周,本人身体也出现了一些问题,所以博客没有更新。 虽然博客没有更新,但是我学习c语言的脚步并没有停下来。今天时间总算空出来了,所以来做一个总结。 我学习了指针的用法,指针和数组的区别,还有其他数据类型,比如结构体、共同体等,浮点数在内存中的储存形式。 还有就是我写的几个代码。 1.编程实现:两个i
今天初步学习了Linux的简单操作,简单的命令。比如ls,cp,mv,pwd,cd等等。 ls命令是list的缩写,可以根据不同的选项,列举指定目录或文件的相关信息。它也是最基础的命令之一。 cd命令是最基础的命令,用于目录间的切换。比如:cd code,cd ..。 mv命令是move的缩写,可以用来移动文件或者将文件改名。 cp命令是capy
今天练习了一些新代码包括 一.编写一个函数,它从一个字符串中提取一个子字符串。#include<stdio.h> #include<string.h> #include<stdlib.h> #include<assert.h> int substr(char dst[], char
今天学习了c语言的一些库函数用法。 比如:strcpy(),strlen(),strchr(),strcmp(),strcat(),strstr()。 下面是我写的一些代码和结果。1.strlen#include<stdio.h> #include<string.h> int main() { char a[10]
今天复习了一个代码,编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。在编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制。 这个代码之前写过,可是今天再次编写的时候还是遇到了一些困难。我发现自己对于while语句的使用理解还是不够深刻。putchar的位置搞了半天。 代码如下
今天复习了之前写过的一些代码,发现许多知识以及淡忘了,看来以后不仅要向后看也要向前看。 比如,我复习求ax^2+bx+c=0二元一次方程的根,我编写代码的时候定义a,b,c三个局部变量定义成了整形,这根本就是错的。我还复习到float型变量跟零进行比较的时候需要与一个特别小的数代替零。比如0.0000000001比如1e-6,我就想是为什么,我查阅了资料,发现是因为实数在
#include<stdio.h> #include<stdlib.h> int main() { int k = 0; int count = 0; srand((unsigned)time(NULL)); int a = rand() % 10
#include<stdio.h> int main() { int i = 0,n = 0; printf("请输入数字:"); scanf("%d", &i); while (i) { n = i % 10; i =
#include<stdio.h>int main(){ int i = 0, sum = 0, n = 1,tmp=1; for (n = 1; n < 11; n++) { tmp = 1; for (i = 1; i <= n; i++) { tmp *= i; } sum += tmp; } printf("%d\n", sum); system("p
简单的三子棋游戏,我能力有限把电脑玩家的走子写的比较简单。#include<stdio.h>void qipan(){ printf("_ _|_ _|_ _\n"); printf("_ _|_ _|_ _\n"); printf("_ _|_ _|_ _\n");}void player_and_pcdo(){ int i = 0, j = 0; static char a[3][
#include<stdio.h> int main() { char *mima = "123"; char ch[10] ; int i = 0; printf("请输入密码"); for (i = 1; i < 4;
#include<stdio.h> #include<windows.h> int main() { char ch[] = " "; char a[] = "1234567890";
#include<stdio.h> int main() { int i,j; int a[100][100]; int row; printf("row="); sc
#include<stdio.h> int main() { int ch = ' '; while ((ch = getchar()) != EOF) { if (ch >= 'a' && ch 
刚开始写的程序里还定义了x1,x2两个变量 后面发现根本不需要这两个变量代码如下:
代码如下:
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号