- 博客(27)
- 问答 (1)
- 收藏
- 关注
原创 循环单链表的创建和输出
/* 时间: 2020年10月22日16:44:37 目的:了解循环单链表 功能:熟悉循环单链表的各项操作 */#include<stdio.h>#include<stdlib.h>typedef struct node{ int val; struct node *next;}SD,*PSD;PSD CreatCirList();//循环单链表的创建函数 void Traverse(PSD);//输出函数int main(){ PSD pL
2020-10-24 17:27:40
360
原创 链栈的C语言算法演示
仅供参考/* 时间: 2020/09/24 15:00 目的:链栈的C语言算法演示 功能:了解压栈,出栈,输出栈,clear等操作 */#include<stdio.h>#include<stdlib.h>typedef struct node{ int date; struct node *pNext;}NODE,*PNODE;typedef struct stack{ PNODE pTop; PNODE pBottom;}STACK,*PST
2020-09-24 17:05:51
201
原创 【C语言】——C Primer Plus 第十一章
编写一个程序,反序显示命令行参数的单词。例如,命令行参数是see you later,改程序应打印later you see思路:不是把各单词存到数组中倒叙输出而是由后往前将空格后的单词输出后再把空格赋为’\0’#include<stdio.h>#include<string.h>void fz(char*,int);int main(){ char str[100]; int i; printf("输入字符串:"); while(i<100&&a
2020-08-29 18:41:49
444
原创 【C语言】——C Primer Plus 第十一章 第11题
编写一个函数,读入10个字符串或者读到EOF时停止。该程序为用户提供一个有5个选项的菜单:打印源字符串列表、以ASCII中的顺序打印字符串、按长度递增顺序打印字符串、按字符串中第1个单词的长度打印字符串、退出。菜单可以循环显示,除非用户选择退出选项。当然,该程序要能真正完成菜单中各选项的功能这十个句子可以在程序中直接粘贴a university to relaxIs the university a place to relax?However I think we had betterword
2020-08-29 16:05:10
461
原创 【C语言】——字符串对比不区分大小写
/* 时间: 2020/08/25 目的:字符串对比不区分大小写 功能:使用ctype.h头文件里的函数 */#include<stdio.h>#include<string.h>#include<ctype.h>int db(char*,char*);//定义对比函数int main(){ char str1[100],str2[100]="Grant"; printf("输入答案:"); gets(str1); db(str1,str2
2020-08-25 16:07:57
1573
原创 【C语言】——提取字符串中的数字并将其存到一维数组中
**思路:当一个字符为数字且flag等于0则它为第一个数字当一个字符为数字且flag不等于0那么它就是前面一个数字的连续数字 **个人觉得比起其他的解法来这算是思路清晰,代码简短的了/* 时间: 2020/08/20 目的:提取字符串中的数字 功能:增加对字符串操作的了解,如何判断字符串里的数字 和如何将连在一起的数字作为一个整数存储*/#include<stdio.h>void search(char*);int main(){ char str
2020-08-20 15:53:29
7770
原创 【C语言】——找出二维数组的鞍点
思路:定义两个数组分别存储每行最大值和每列最小值,找出重合的值即可/* 时间:2020/08/16 目的:找出二维数组的鞍点 功能:对于二维数组的一些操作 */#include<stdio.h>#include<stdlib.h>#include<time.h>#define N 3void sort(int(*)[3]);int main(){ int a[N][N]; sort(a);}void sort(int(*a)[3])
2020-08-16 19:38:49
885
原创 【C语言】——输出魔方方阵之偶魔方(阶数不为4的倍数)
思路:将其分为4部分,按顺时针方向依次为A,B,C,D。A按照奇魔方的方式对其赋值在A的基础上对B,C,D赋值交换A、C魔方元素,对魔方的中间行,交换从中间列向右的m列各对应元素(包括中间列)对其他行,交换从左向右m列各对应元素。交换B、D魔方元素,交换从中间列向左m-1列各对应元素(包括中间列)/* 时间:2020/08/16 目的:输出魔方方阵之偶魔方(阶数不为4的倍数) 功能:对于二维数组的一些操作 */#include<stdio.h>#define N 10
2020-08-16 16:12:13
253
2
原创 【C语言】——魔方阵之偶魔方(阶数为4的倍数)
思路:/* 时间:2020/08/15 目的:输出魔方阵之偶魔方(阶数为4的倍数) 功能:对于数组的一些操作 */#include<stdio.h>#define N 4
2020-08-16 12:39:54
310
原创 【C语言】——魔方阵之奇魔方(阶数是奇数)
思路:数字1位于第一行中间,后面一个数比前面一个数行数少一列数加一(行数为第一行则跳至最后一行,列数为最后一行则跳至第一行)。如果前一个数字为阶数的倍数,则后面一个数行数加一列数不变/* 时间:2020/08/15 目的:输出魔方阵的奇魔方类型 功能:对于数组的一些操作 */#include <stdio.h>#define N 5int main(){ int a[N][N],i=0,j,num; j=(N-1)/2; a[i][j]=1;
2020-08-15 17:53:16
540
原创 【C语言】——杨辉三角
思路:创建一个二维数组进行部分赋值与输出即可/* 时间:2020/08/15 目的:输出杨辉三角(10行) 功能:对于数组的一些操作 */#include<stdio.h>#define N 10int main(){ int a[N][N];//定义一个二维数组 int i,j; for(i=0;i<N;i++){ a[i][i]=1; a[i][0]=1; for(j=1;j<i;j++){ a[i][j]=a[i-1][j
2020-08-15 16:07:42
118
原创 【C语言】——把一个值按照一个有序数组原来的顺序插入到该数组中
思路:将数组从后往前与要插入的值进行比较/* 时间:2020/08/15 目的:把一个值按照一个有序数组原来的顺序插入到该数组中 功能:对数组的操作 */#include<stdio.h>int main(){ int a[6]={1,4,8,10,15},n,i=4; printf("输入你要插入的值:"); scanf("%d",&n); while(i>=0&&a[i]>=n){//我当时也是想着往后移但这个方法更好
2020-08-15 14:14:28
449
原创 【C语言】——计算单词个数
思路:有空格,word就标记为0,当有字符不为空格且前一个为空格则其为新单词的开始,num就要加一/* 时间:2020/08/14 目的:计算单词个数 功能:进一步熟悉对于字符串的操作 */#include<stdio.h>int main(){ char string[81]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!='\0';i++){ if(c==' ')word=
2020-08-14 16:12:51
1908
1
原创 【C语言】——删除多余的空格
**思路:出现第一个空格后把count标记为1,只有count满足不为1的时候才能输出空格在输出非字符后将count设为0,后续才能输出空格**/* 时间:2020/08/14 目的:删除多余的空格 功能:进一步熟悉对于字符串的操作 */#include<stdio.h>int main(){ char string[81]; int i,count=1; char c; gets(string); for(i=0;(c=string[i])!='\0';i+
2020-08-14 16:03:44
5306
2
原创 【C语言】——将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的
** 思路:定义一个头指针用来创建一个新链表,并且判断l1,l2是否为NULL要写在前面 **/* 时间:2020/08/10 */ `/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* mergeTwoLists(struct ListNode* l1, struct L
2020-08-10 16:54:15
737
原创 【C语言】——删除链表倒数第n个结点
题目来源:力扣**总结:利用count计算有多少个结点在利用i使指针移动到要被删除的前一个结点 **typedef struct list{ int val; struct list *pnext;}NODE,*PNODE;PNODE sort(PNODE pHead,int n){ int count=0,i=0; PNODE p=pHead->pnext,s=pHead; while(p!=NULL){ p=p->pnext;
2020-08-10 14:02:21
250
原创 【C语言】——给出一个链表和一个值 ,以 为参照将链表划分成两部分,使所有小于 的节点都位于大于或等于 的节点之前。 两个部分之内的节点之间要保持的原始相对顺序
**思路:****通过定义两个头指针使其分别指向小于a和大于等于a的结点从而将两部分分别进行连接形成两个链表再将小于a的那一部分的链表的尾指针指向大于等于a的链表的首结点形成一个新链表 ******/* 时间:2020/08/08 目的:给出一个链表和一个值a ,以a为参照将链表划分成两部分 使所有小于 a的节点都位于大于或等于a的节点之前 两个部分之内的节点之间要保持的原始相对顺序 功能:利用链表解决一些实际问题 */#include<stdio.h>#
2020-08-09 13:45:33
441
原创 【C语言】——删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素
/* 时间:2020/08/08 目的:删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。 功能:利用链表解决一些实际问题 */#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct list{ int val; struct list *pnext;}NODE,*PNODE;int main(){ PNODE pHead; int len;
2020-08-08 17:33:53
694
原创 【C语言】——删除链表中相同的元素,使得各个元素只出现一次
/* 时间:2020/08/08 目的:删除链表中相同的元素,使得各个元素只出现一次 功能:利用链表解决一些实际问题 */#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct list{ int val; struct list *pnext;}NODE,*PNODE;PNODE creatlist(int);PNODE sort(PNODE);void t
2020-08-08 16:31:33
275
原创 【C语言】——n人围成一圈从第1个人开始按1~3报数,报3的人退出圈子,求最后留下的是几号(用链表的方法解决)
思路和用非指针的方法解决是一样的,非指针解决本题可以参考这个程序/* 时间:2020/08/05 目的:n人围成一圈从第1个人开始按1~3报数,报3的人退出圈子,求最后留下的是几号 功能:用链表解决一些实际问题,加深对链表的理解和运用 */#include<stdio.h>#include<stdlib.h>#include<malloc.h> typedef struct BX{ int num; struct BX *pNext;}NODE
2020-08-05 16:17:00
618
原创 【C语言】——n人围成一圈从第1个人开始按1~3报数,报3的人退出圈子,问最后留下的是第几号(采取指针作为函数参数的方法)
有非指针方法的思路其实很简单,非指针的方法可以参考这个程序/* 时间:2020/08/04 目的:n人围成一圈从第1个人开始按1~3报数,报3的人退出圈子,问最后留下的是第几号 功能:指针作为函数参数的一个实践 */#include <stdio.h>void sx(int*,int);//定义筛选函数 int main(){ int n,i; printf("输入游戏人数:"); scanf("%d",&n); int a[n];
2020-08-04 18:10:42
1639
2
原创 【C语言】——n人围成一圈从第1个人开始按1~3报数,报3的人退出圈子,问最后留下的是第几号
**本题是利用count++的形式解决了第一个人接着最后一个人报数的问题 **/* 时间:2020/08/04 目的:n人围成一圈从第1个人开始按1~3报数,报3的人退出圈子,问最后留下的是第几号 功能:经典题目实践 */#include<stdio.h>int main(){ int i,count=0,n,t; printf("输入游戏人数:"); scanf("%d",&n); t=n; int a[n]; for(i=0;i<n;i++)
2020-08-04 17:38:43
635
原创 【C语言】——将一个3×3的整型矩阵转置(指针加函数)
将数组里的元素由横向转为竖向/* 时间:2019/12/14 目的:写一个函数,将一个3×3的整型矩阵转置(指针加函数) 功能:指针加函数的基础应用 */#include<stdio.h>#define N 3//N为多少都是一样的 void zz(int(*)[N],int(*)[N]);//定义转制函数 int main(){ int a[N][N]={1,2,3,4,5,6,7,8,9}; int b[N][N];//存放转制后的数组 zz(a,b);
2020-08-02 19:06:03
4097
原创 【C语言】链表——在特定的结点前插入,删除特定的结点和查找特定结点的值
**对于链表的插入,删除和查找的另外一种情况进行了解 **#include<stdio.h>#include<malloc.h>#include<stdlib.h> typedef struct listnode{ int date; struct listnode *pnext; } NODE,*PNODE; PNODE creatlist();//返回的是NODE型指针,所以要用PNODE定义 void trase(PNODE);//输出函数
2020-08-01 18:10:57
524
原创 【C语言】——基本了解单链表创建,输出,查找,插入,删除
了解查找含有特定值的结点,把值插入到的其中特定位置,删除含有特定值的结点的操作/* 时间:2020/07/02 12:39 目的:创建和输出单链表 功能:基本了解单链表创建,输出,查找,插入,删除 */#include<stdio.h>#include<math.h>#include<malloc.h>#include<stdlib.h> typedef struct listnode{ int date; struct listn
2020-08-01 17:44:19
303
原创 【C语言】链表——a,b两无序链表合并后有序输出
在dev c++上输出正确,但是总结和输出结果部分复制过来文章就编辑不了了/* 时间: 2020/07/05 21:38 目的:a,b两无序链表合并后有序输出 功能:使用链表解决一些实际问题,巩固对链表理解和应用*/#include<stdio.h>#include<math.h>#include<malloc.h>#include<stdlib.h> typedef struct listnode{ int num; flo
2020-08-01 17:28:43
406
原创 5X5阶矩阵【C语言】
老师给的课后练习题/* 时间:2020/07/30 目的:二维数组特定元素的提取和交换 功能:了解对于二维数组特定元素的操作 */#include<stdio.h>#include<stdlib.h>#include<time.h>#define N 5 void intput(int b[][N]);void output(int b[][N]);void move(int b[][N]); int main(){ int a[N]
2020-08-01 17:06:19
3785
空空如也
为什么switch语句内的函数未生效?
2020-08-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人