C语言程序设计
涉及一些基本算法和关键字使用
王陈锋
没有什么可看的,没有什么意思
展开
-
关于回文判断(c语言版)
随着不断接触,回文的判断也越发严谨。原创 2022-08-19 23:12:57 · 853 阅读 · 0 评论 -
C语言-单词分析解析
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。输入一行包含一个单词,单词只由小写英文字母组成。对于所有的评测用例,输入的单词长度不超过 1000。输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序原创 2022-06-24 14:54:36 · 413 阅读 · 0 评论 -
(查找排序)为宿舍管理人员编写一个宿舍管理查询软件, 程序采用交互工作方式(两种)
为宿舍管理人员编写一个宿舍管理查询软件, 程序采用交互工作方式,其流程如下:开 始建立数据文件数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、快速等任选一种)查询菜单: (用二分查找实现以下操作)1.按姓名查询2.按学号查询3.按房号查询打印任一查询结果(可以连续操作)原创 2021-12-21 18:48:26 · 4700 阅读 · 3 评论 -
(图的遍历)以邻接矩阵和邻接表的方式存储连通图。然后分别用深度优先或广度优先算法遍历邻接矩方式存储的图和邻接表方式存储的图。
实验目的1.掌握图的基本存储方法;2.掌握有关图的操作算法并用高级语言编程实现。实验数据(图)运行结果代码实现#include<stdio.h>#include<malloc.h>typedef int InfoType;#define MAXV 100 //最大顶点个数#define INF 32767 //INF表示无穷大//以下定义邻接矩阵类型typedef struct{ int no;//顶点编号 ...原创 2021-12-19 10:45:16 · 1112 阅读 · 0 评论 -
编制一个可以对图进行遍历和用迪杰斯特拉算法求指定顶点到其余各顶点的最短路径的程序。
实验目的1.掌握图的基本存储方法。2.掌握有关图的操作算法并用高级语言编程实现;3.熟练掌握图的两种搜索路径的遍历方法。算法描述1)记S为已经找到的从V0出发的最短路径的终点的集合,它的初始状态为空集。那么,从V出发到图上其余各顶点VI可能达到的最短路径的初始值为D[i]=arcs[LocateVex(G,V)][i].2)选择Vj使得:D[j]=Min{D[i]|vi不属于S}Vj就是当前求得的一条从V出发的最短路径的终点。将j加入到S中。3)...原创 2021-12-19 10:41:41 · 926 阅读 · 0 评论 -
c语言利用地址来获取内容
前情提要数组存储的地址是连续的,可以利用这性质来进行地址内容调用。数据在数组中按矩阵存储,按行、列来存储。函数例子#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX 100typedef struct{ int number;//学号 int house_number;//房号}NodeType;typedef struct{ Node..原创 2021-12-18 15:57:37 · 4504 阅读 · 0 评论 -
图的迪杰斯特拉算法,求最短路径
迪杰斯特拉算法,求最短路径,算法思想解析原创 2021-12-05 15:03:04 · 3296 阅读 · 3 评论 -
实现图的邻接矩阵存储,将邻接矩阵转为邻接表。
前期提要本代码的邻接矩阵的顶点设为v0、v1、v2、v3、v4、v5,从v0开始。代码实现#include<stdio.h>#include<malloc.h>typedef int InfoType;#define MAXV 100 //最大顶点个数#define INF 32767 //INF表示无穷大//以下定义邻接矩阵类型typedef struct{ int no;//顶点编号 InfoType info;//顶点其他信息原创 2021-12-02 15:26:05 · 1713 阅读 · 0 评论 -
在目录下搜索文件是否存在,并将其路径打印出来(文件)
在目录下搜索文件是否存在,并将其路径打印出来(文件)原创 2021-11-24 15:48:37 · 475 阅读 · 0 评论 -
遍历目录下的所有文件(文件)
前情提要文件内容结构本地文件夹代码实现#include <stdio.h>#include<io.h>#include<string.h>#define MaxSize 100//这里是目录底下最多的文件数量设置,文件数量设置要多余等于实际情况,不然不能全部出来int Function(char *,char *);//文件夹遍历函数void Connect(char*,char*,char*);//字符串连接函数v..原创 2021-11-22 20:13:30 · 1665 阅读 · 0 评论 -
建立一磁盘目录,搜索某文件是否存在(二叉树模拟)
构造思想,文件采用左兄弟,右孩子的想法进行构造。原创 2021-11-22 20:09:08 · 997 阅读 · 0 评论 -
哈夫曼树构造及哈夫曼编码
请为用于通信的电文中的字母进行赫夫曼编码。如各个字母在电文中出现的频率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11。试为这8个字母设计哈夫曼编码。原创 2021-11-21 16:05:36 · 11097 阅读 · 4 评论 -
二叉树算法
按先序次序输入二叉树中结点的值(一个字符),`0`表示空树,生成二叉树的二叉链表存储结构, a为指向根结点的指针。然后按中序顺序遍历二叉树。算法思想:先访问左子树,再访问根结点,最后访问右子树实验数据:abc00de0g00f000(0表示空格)原创 2021-11-20 20:07:44 · 1063 阅读 · 1 评论 -
实验中序线索化二叉树
程序采用cpp文件,实现中序线索化二叉树,采用递归和非递归两种方式输出线索中序序列。原创 2021-11-16 20:35:10 · 1445 阅读 · 0 评论 -
文本串加密和解密程序。一个文本串可用事先给定的字母映射表进行加密
前情提要设字母映射表为:a b c d e f g h i j k l m n o p q r s t u v w x y zn g z q t c o b m u h e l k p d a w x f y i v r s j测试数据:encrypt 加密后tkzwsdf将输入的文本串进行加密后输出,然后进行解密并输出。代码实现#include<stdio.h>#include<string.h>#define MaxSize 100..原创 2021-11-14 07:36:19 · 4840 阅读 · 1 评论 -
实现顺序串的各种模式匹配算法
函数操作采用简单匹配算法求子串t在主串s中的位置 采用KMP算法求子串t在主串s中的位置 采用改进的KMP算法求子串t在主串s中的位置代码实现#include<stdio.h>#include<string.h>#include<stdlib.h>#define MaxSize 100typedef int Status;typedef struct{ char data[MaxSize]; int length;}HStr.原创 2021-11-14 07:34:21 · 1645 阅读 · 0 评论 -
编写程序,实现顺序串(堆分配存储结构)的各种基本运算
函数操作Status StrAssign(HString &T, char * chars)//生成一个其值等于串常量chars的串Tint StrLength(HString S)//返回S的元素个数,称为串的长度int StrCompare(HString S, HString T)//若S>T,则返回值>0;若S=T,则返回值=0;若S<T则返回值<0Status ClearString(HString &S)//将S清空Status Co原创 2021-11-14 07:32:20 · 2471 阅读 · 0 评论 -
实验顺序串各种基本运算的算法
前情提要代码文件采用cpp文件代码#include<stdio.h>#include<string.h>#define MaxSize 100typedef struct{ char data[MaxSize]; int length;}SqString;void StrAssign(SqString &s,char cstr[]);//由串常量cstr创建串strvoid StrCopy(SqString &s,SqStr...原创 2021-11-01 19:44:48 · 1075 阅读 · 0 评论 -
(模拟看病)编写一个程序,反映病人到医院看病,排队看医生的情况。
前情提要代码使用cpp文件,使用链队。在病人排队过程中,主要重复两件事:(1)病人到达诊室,将病历交给护士,排到等待队列中候诊。(2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊。要求模拟病人等待就诊这一过程。程序采用菜单方式,其选项及功能说明如下:排队——输入排队病人的病历号,加入到病人排队队列中。 就诊——病人排队队列中最前面的病人就诊,并将其从队列中删除。 查看排队——从队首到队尾列出所有的排队病人的病历号。 不再排队,余下顺序就诊——从队首到队尾列出所有原创 2021-10-19 19:49:02 · 6977 阅读 · 8 评论 -
(中缀表达式)编写进栈、出栈、表达式求值等相关函数,实现表达式求值功能。
前情提要纯c版本#include<stdio.h>#include<string.h>#include<stdlib.h>#define max 100typedef struct{ double data[max]; int top;}Stacknum;typedef struct{ char data[max]; int top;}Stackchar;void initnum(Stacknum *p){ p->top=原创 2021-10-17 16:53:07 · 513 阅读 · 0 评论 -
(第1种)括号匹配,判断一个表达式中的括号是否匹配。
前情提要纯c版本,#号代表终止操作#include<stdio.h>#include<stdlib.h>#include<math.h>#define maxsize 100typedef int status;//使后面可以使用status类型,用来表示成功或失败状态#define ERROR -1#define OK 1typedef struct{ char *base; char *top; int stacksize;}sqs.原创 2021-10-08 20:49:44 · 1080 阅读 · 0 评论 -
(进制转换)数制转换,把一个十进制的数转换为R进制
前情提要本代码可支持,10进制转换为任意进制的数#include<stdio.h>#include<stdlib.h>#include<math.h>#define maxsize 100typedef int status;//使后面可以使用status类型,用来表示成功或失败状态#define ERROR -1#define OK 1typedef struct{ int *base; int *top; int stacksize;原创 2021-10-08 20:42:14 · 3523 阅读 · 0 评论 -
(第4种)用单链表存储一元多项式,并实现两个多项式相加运算。
前期提要本次代码纯c语言,可以支持输入两个多项式的项式、系数、指数。#include<stdio.h>#include<stdlib.h>typedef struct arrays//定义存放多项式的数组类型{ double coef;//系数 int exp;//指数}narray;typedef struct pnode//定义单链表节点类型{ double coef; int exp; struct pnode *next;}Node,*.原创 2021-10-08 20:37:25 · 3299 阅读 · 0 评论 -
(第3种)用单链表存储一元多项式,并实现两个多项式相加运算
本次代码是纯c语言版本的#include<stdio.h>#include<stdlib.h>typedef struct//定义存放多项式的数组类型{ double coef;//系数 int exp;//指数}narray[10];typedef struct pnode//定义单链表节点类型{ double coef; int exp; struct pnode *next;}Node,*LinkList;int i;LinkList cre原创 2021-10-08 20:30:44 · 1936 阅读 · 1 评论 -
关于顺序栈的退栈和入栈操作
代码Void main(){Stack S;Char x,y;InitStack(S);x='c';y='k';push(S,x);push(S,'a');push(S,y); ---(1)pop(S,x);push(S,'t');push(S,x); ---(2)pop(S,x);push(S,'s'); ...原创 2021-10-08 08:10:17 · 3418 阅读 · 0 评论 -
实现顺序栈各种基本运算的算法(双指针版)(c)
代码支持实现初始化、栈空、栈满、取栈顶、进栈、出栈。代码#include<stdio.h>#include<stdlib.h>#include<math.h>#define maxsize 100typedef int status;//使后面可以使用status类型,用来表示成功或失败状态#define ERROR -1#define OK 1typedef struct{ char *base; char *top; int sta原创 2021-10-06 08:38:07 · 976 阅读 · 0 评论 -
实现顺序栈各种基本运算的算法(单指针版)(c++)
代码支持实现初始化、栈空、栈满、取栈顶、进栈、出栈。代码分为2部分,一个函数部分,一个主函数。函数部分#include<stdio.h>#include<malloc.h>#define maxsize 100typedef struct{ char data[maxsize]; int top;}sqstack;void init(sqstack *&s){ s=(sqstack *)malloc(sizeof(sqstack));原创 2021-10-05 19:01:37 · 1984 阅读 · 0 评论 -
顺序栈的表示与实现
顺序栈的基本函数初始化入栈出栈取栈顶元素代码#include<stdio.h>#include<stdlib.h>#include<math.h>#define maxsize 100typedef int status;//使后面可以使用status类型,用来表示成功或失败状态#define ERROR -1#define OK 1typedef struct{ char *base; char *top; int原创 2021-10-05 09:28:36 · 645 阅读 · 0 评论 -
单链表,删除小于x的所有元素
#include <stdio.h>#include <stdlib.h>#include <malloc.h>typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;void PrintList(LinkList L);LinkList init(int n){ int i=0; LinkList L.原创 2021-10-03 18:05:27 · 989 阅读 · 0 评论 -
已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于mink且小于mark的所有元素(若表中存在这样的元素),同时释放被删除结点空间。
#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct node{ int data;//数据 int length;//长度 struct node *next;}Node,*LinkList;//删除超过范围的内容void deLinkList(LinkList L,int mink,int maxk){ LinkList p,q;p=L; while(p!.原创 2021-10-03 18:03:05 · 5207 阅读 · 2 评论 -
P1007独木桥
题目背景战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳11个人通过。假如有22个人相向而行在桥上相遇,那么他们22个人将无法绕过对方,只能有11个人回头下桥,让另一个人先通过。但是,可以有多个人同时呆在同一个位置。题目描述突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了...原创 2021-10-03 15:24:09 · 254 阅读 · 0 评论 -
学生管理系统(数组?结构体?)
题目选择一种线性表实现方式(顺序表或单链表),实现如下线性表应用:要求:输入n个学生的信息(姓名,性别,学号,成绩),实现功能: 功能1:查找某个学号为×××的学生; 功能2:添加一名学生的信息(姓名,性别,学号,成绩); 功能3:删除一名学号为×××的学生。 功能4:计算所有学生的平均成绩 功能5:修改学号为×××的学生的成绩。代码#include<stdio.h>#include<stdlib.h...原创 2021-09-29 09:24:33 · 268 阅读 · 0 评论 -
学生管理系统(顺序表)
题目选择一种线性表实现方式(顺序表或单链表),实现如下线性表应用:要求:输入n个学生的信息(姓名,性别,学号,成绩),实现功能: 功能1:查找某个学号为×××的学生; 功能2:添加一名学生的信息(姓名,性别,学号,成绩); 功能3:删除一名学号为×××的学生。 功能4:计算所有学生的平均成绩 功能5:修改学号为×××的学生的成绩。代码#include<stdio.h>#include<stdlib...原创 2021-09-29 09:21:52 · 1529 阅读 · 2 评论 -
用单链表存储一元多项式,并实现两个多项式相加运算。(c与c++)
测试数据A17(x)=7+3x+9x8+5x17B8(x)=8x+22x7-9x8c语言版本#include<stdio.h>#include<stdlib.h>#define MAX 20typedef struct//定义存放多项式的数组类型{ double coef;//系数 int exp;//指数}polyarray[MAX];typedef struct pnode//定义单链表节点类型{ double coef; int ex原创 2021-09-28 20:00:19 · 5424 阅读 · 0 评论 -
编写一个程序计算1-1/2+1/3-1/4+1/5-·······+1/9-1/10,计算其前10项的和。。
#include<stdio.h>#include<math.h>int main(){double sum=0.0;int a;int i=1;while(i<11){ a=pow(-1,i+1); sum=sum+(a*(1.0/i)); i++;}printf("%.8f\n",sum);return 0;}原创 2021-05-29 13:05:06 · 2883 阅读 · 0 评论 -
c语言中0.f例子
#include<stdio.h>int main(void){ double a=22222.22222; printf("a=%0.5f\n",a); return 0;}原创 2021-05-29 12:10:58 · 2273 阅读 · 0 评论 -
编写程序,读入3个双精度实数,求它们的平均值并按照如下个格式输出:保留4位小数,数据宽度为20、不足补0,输出正负号。
#include<stdio.h>int main(){ double a,b,c,sum; scanf("%lf%lf%lf",&a,&b,&c); sum=a+b+c; printf("%+020.4f\n",sum/3); return 0;}原创 2021-05-30 10:25:09 · 2758 阅读 · 0 评论 -
4-29某员工的薪水保底500,工程的利润与提成如下
#include<stdio.h>int main(){ long profit; int grade; float salary=500; printf("input profit:"); scanf("%ld",&profit); grade=(profit-1)/1000; switch(grade) { case 0:break; ...原创 2021-05-28 17:54:00 · 2661 阅读 · 0 评论 -
打印*金字塔
#include<stdio.h>int main(){ int i,j; for(i=1;i<=6;i++) { for(j=1;j<=6-i;j++) { putchar(' '); } for(j=1;j<=2*i-1;j++) printf("*"); putchar('\n'); }}原创 2021-05-28 18:10:15 · 134 阅读 · 0 评论 -
输入3个数字,进行大到小排序4-6(2)
#include<stdio.h>int main(){ int num1,num2,num3,temp; scanf("%d%d%d/n",&num1,&num2,&num3); sort(num1,num2,num3); return 0;}int sort(int x,int y,int z){ int temp; if(y>x) { temp=x; x=y; y=temp; } else if(z>y).原创 2021-05-28 15:22:25 · 75 阅读 · 0 评论