摘要:1 #include 2 #include 3 /* 4 选择法实现链表排序 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 NODE * createList() 12 { 13 NODE *head = (NODE *)malloc(siz...
阅读全文
摘要:1 #include 2 #include 3 /* 4 链表:创建空链表,插入节点,遍历,求长度,查找,删除,反转 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 //创建空链表 12 NODE * createList() ...
阅读全文
摘要:1 #include 2 #include 3 /* 4 链表指针交换实现冒泡排序:核心思想:1.每次都从头开始比较 5 2.sh,p,q整体往前走一步(交不交换都要往前走) 6 3.交换完之后p变成q,q变成p,整体往前走,下次交换就会...
阅读全文
摘要:1 #include 2 #include 3 /* 4 链表值排序之冒泡:核心思想:1.每次都从头开始比较 5 2.推动链表往下走的不在是下标 6 */ 7 typedef struct node 8 { 9 int data; 10 struct node * next; 11 }NODE; 12 ...
阅读全文
摘要:1 #include 2 #include 3 /* 4 头插法链表的基本操作:创建空链表,插入节点,遍历输出节点数据,求链表长度,查找结点,删除结点。 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 //创建空链表 12 NO...
阅读全文
摘要:1 #include 2 #include 3 /* 4 尾插法链表拆分:1.建立空链表。2.插入节点。3.遍历并输出插入节点后的链表数据 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 //建立空链表 12 NODE * createList() 1...
阅读全文
摘要:1 #include 2 #include 3 /* 4 头插法链表拆分:1,建立空链表。2插入节点。3遍历输出插入节点后的链表数据 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 //1.建立空链表 12 NODE * createList() 13...
阅读全文
摘要:1 #include 2 #include 3 /* 4 尾插法创建链表:尾插法就是每次都把结点插在尾结点后面 5 总结:尾插法相对头插法 需要多定义一个指针pt来保存尾结点的地址。 6 */ 7 typedef struct node 8 { 9 int data; 10 struct node * next; 11 }NODE; 12 NODE * cr...
阅读全文
摘要:1 #include 2 #include 3 /* 4 头插法建立链表:所谓头插法,就是新来的结点每次都插在头结点后面 5 内功心法:让新来的结点先有所指向(指向头结点的下一个结点),新来的结点,有所指向不会打断原有的指向关系。 6 */ 7 typedef struct node 8 { 9 int data; 10 struct node * next...
阅读全文
摘要:1 #include 2 /* 3 反斜线扫描 4 */ 5 int main(void) 6 { 7 int arr[4][5] = { 8 {1 ,2 ,3 ,4 ,5}, 9 {3 ,4 ,5 ,6 ,7}, 10 {8 ,9 ,10,11,12}, 11 {13,14,15,16,17} 12 ...
阅读全文
摘要:1 #include 2 /* 3 题目:c 语言中没有 bool 类型,可以通过 enum 类型来枚举。 4 */ 5 typedef enum BOOLEN 6 { 7 False, True 8 }BOOL; 9 int main(void) 10 { 11 BOOL a = True; 12 printf("%d\n",a); 13 a...
阅读全文
摘要:1 #include 2 /* 3 题目:判断一年中第 125 天是工作日, 还是休息日?假设一年 365 天, 新年第一天是星期一。 4 思路1:一个星期有7天,125%7 得到的余数>5 休息日,5) 17 printf("休息日\n"); 18 else 19 printf("工作日\n"); 20 */ 21 //方法二 ...
阅读全文
摘要:1 #include 2 /* 3 题目:写程序判断大小端 4 思路:所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中 5 小端模式正好相反,数据的低位保存在低地址中,数据的高位保存在高地址中 6 7 结论:最终在电脑上测试,我们普通用的电脑是大端序。 8 */ 9 typedef union 1...
阅读全文
摘要:1 #include 2 /* 3 题目: 4 设有若干个人员的数据,其中有学生和老师。 学生的数据包括: 姓名, 编号, 性别, 5 职业,年级。老师的数据包括:姓名,编号,性别,职业,职务。可以看出,学生和老 6 师所包含的数据是不同的。先要求把他们放在同一个表格中: 7 name num sex job grade posit...
阅读全文
摘要:1 #include 2 /* 3 题目:栈的自实现 4 思路:栈的典型特点就是先进后出(FILO),或是后进先出(LIFO)。主要接口操作,主要有四类,分别是,判空,判满,压栈,出栈 5 */ 6 //声明栈类型 7 struct stack 8 { 9 char arr[152]; 10 int top;//计数 11 }; 12 13 struct s...
阅读全文
摘要:1 #include 2 /* 3 题目:4种字符串库函数自实现:1.mystrlen()测字符串长度 2.mystrcat()字符串链接 3.mystrcpy()字符串拷贝 4.mystrcmp()字符串比较 4 思路:1.mystrlen()测字符串长度。测量字符串的实际长度返回一个整数值 5 2.mystrcat()字符串链接。将第二个字符串链接到第一个字符串后面...
阅读全文
摘要:#include #include /* 题目:实现登录功能,要求输入用户名和密码,模仿登录,三次输入失败则退出程序。 思路:1.定义二个字符数组。一个存储用户名,一个存储密码。 2.定义一个flag 来记录输入正确。定义一个count 来记录输入错误的次数 */ int main(void) { char name[30]; char password[30];...
阅读全文
摘要:1 #include 2 /* 3 题目:求n! 4 解题思路:0的阶乘 = 1 n的阶乘 =n*(n-1)! 5 */ 6 int fac(int n) 7 { 8 if(0 == n) 9 return 1; 10 else 11 return n*fac(n-1); 12 } 13 14 int main(voi...
阅读全文
摘要:1 #include 2 3 int main(void) 4 { 5 /* 6 //1.往指定内存存入数据:请写一条语句,往内存地址 0x12345678 中写入整型数据 1234。 7 *((int *)0x12345678) = 1234;//可能程序会崩溃,但是编译能够通过。指针是个有类型的地址。 8 */ 9 10 /* 11 /...
阅读全文
摘要:1 #include 2 /* 3 题目:1.合并两个有序数组到第三个中去,并使其依然保持有序 2.删除重复的元素 4 思路:a.分别测出二个数组的长度,将两个数组的长度之和作为第三个数组的长度 5 b.比较二个数组元素的大小,小的放入第三个数组,直至某一个数组为空,将另外一个不为空的数组剩下的元素追加到第三个数组 6 后面即可 7 c....
阅读全文
摘要:1 #include 2 /* 3 两种查找 4 */ 5 #define N 10 6 int main(void) 7 { 8 /* 9 //查找1:无序数组查找,返回下标(线性查找) 10 //思路:将需要查找的数和数组的元素逐个比较,相同返回下标,未找到返回-1 11 int lookup(int arr[],int n,int j); 12 int ...
阅读全文
摘要:1 # include 2 # include 3 /* 4 题目:3个候选人,每个选民只能投票选一人,要求编写一个统计选票的程序,先后输入被选人的名字,最后输出各人得票的结果 5 解题思路:每个候选人的名字和得票 组成一个结构体变量。3个候选人就需要一个结构体数组。定义一个结构体数组arr,每个元素中的得票初始化为0. 6 投票输入候选人名字,候选人的得...
阅读全文
摘要:1 #include 2 #define N 10 3 /* 4 数组最值和两种排序 5 */ 6 int main(void) 7 { 8 /* 9 //题目1.求一个数组中最大与最小值 10 int arr[N] = {9,-1,0,-3,5,6,7,8,15,10}; 11 int i,j,max,min; 12 max = min = arr[...
阅读全文
摘要:1 #include 2 /* 3 循环练习题 4 */ 5 int main(void) 6 { 7 /* 8 //题目1:打印99乘法表 9 //思路:观察乘法表:1.每行打印的列数等于行号(例如:第一行,1列,第二行2列) 所以内循环的终止条件:j0) 36 { 37 while(val) 38 { 39...
阅读全文
摘要:1 #include 2 /* 3 运算符综合练习 4 */ 5 int main(void) 6 { 7 /* 8 // 1.if(x==y) 与 与 if(x=y) 之间的区别 9 答: 10 x == y 是逻辑表达式,当 x和y相等表达式的值是1 为真,不相等表达式的值为0,为假 11 x = y 是赋值表达式。当 y的值为0时 x的值为...
阅读全文
摘要:1 #include 2 /* 3 项目:五子棋赢棋判断 4 思路:1.横向扫描判断是否有连续5颗相连的棋子 5 2.纵向扫描判断是否有连续5颗相连的棋子 6 3.扫描主对角线判断是否有连续5颗相连的棋子 7 4.斜线扫描主对角线上半面是否有连续5颗相连的棋子 8 5.斜线扫描主对角线下半面是否有连续5颗相连的棋子 9 6.扫描次对角线判断是否有连续5颗...
阅读全文
摘要:1 #include 2 3 #define M 10 4 #define N 10 5 int main(void) 6 { 7 int i,j; 8 //初始化二维数组 9 int arr[M][N] = { 10 {1,2,3,4,5,6,1,0,0,1}, 11 {1,2,3,4,1,6,1...
阅读全文
摘要:1 #include 2 /* 3 题目:练习字符串链接 4 */ 5 int main(void) 6 { 7 char name1[30] = "abc"; 8 char name2[30] = "defdasdasd"; 9 10 char *p1,*p2; 11 p1 = name1; 12 p2 = name2; 1...
阅读全文
摘要:1 #include 2 int getSubstrCount(char* str,char* subStr) 3 { 4 int count = 0; 5 while(*str) 6 { 7 int i; 8 //如果在大串中碰到相同的字符,则进入循环开始连续判断,如果出现不相同的则终止循环。如果完全相同则小串正常结束 ...
阅读全文