- 博客(44)
- 收藏
- 关注
原创 图的表示与基础操作:邻接矩阵与邻接表的C语言实现
图由顶点集和边集构成,边可以是有向或无向的,且可带有权重。根据图的特性选择合适的存储结构至关重要,这直接影响到图的各种操作(如遍历、查找最短路径等)的效率。本文只对于代码做简单分享,不对代码的逻辑做深层解释,如果读者想知道代码的实现逻辑,请详细阅读代码中的注释部分。
2024-05-30 14:38:37 1587
原创 堆与堆排序算法实现分享
在计算机科学中,堆是一种特殊的完全二叉树数据结构,常被用于实现优先队列等应用场景。本文将通过一个C语言示例,详细介绍如何实现一个基于数组的大顶堆及其基本操作——包括堆的创建、插入元素(入堆)、删除最大元素(出堆)以及利用这些操作实现堆排序算法。本代码实例主要涉及到了一个Heap结构体的定义、堆的创建、元素的插入与删除,以及堆排序的整个过程。
2024-05-22 20:31:44 375
原创 链式队列基本操作
链式队列是一种灵活且高效的数据结构,适用于需要动态内存分配的场景。通过上述代码,我们可以看到链式队列的实现相对简单,但功能强大。它在很多应用中都非常有用,比如任务调度、事件处理等。
2024-05-06 16:55:46 388
原创 通过中缀表达式转后缀表达式计算复杂表达式
在计算机科学中,栈是一种常用的数据结构,它遵循后进先出(LIFO)的原则。本文将通过一系列函数的实现,探讨栈在括号匹配、中缀表达式转换为后缀表达式以及后缀表达式求值中的应用。
2024-04-28 11:13:51 1010 1
原创 循环队列(数组实现)
想想一下现在你来到了一个教室,教室中从左到右分别有四组,每一组有很多排,现在我们记从左到右分别为ABCD组,现在有很多人要进来坐座位,我们按从左到右先做,A排坐满取到第二排,第二排仍然按照从左到右的顺序做,依次类推,那么请问第15个进来的人坐在第几组?传统的线性书架在放置书籍时,一旦最后一个位置被填满,就无法再添加新的书籍,即使前面有空位也不行。通过循环使用书架上的位置,我们可以确保每一本书都能有一个合适的位置,同时也方便我们进行书籍的添加和移除操作。,则坐在B组,3对应C组,0对应D组;
2024-04-25 14:36:53 428
原创 一般数组队列(具有伪溢出的队列)
说明:该队列不是循环队列,有数组溢出的风险。也应该在到达数组末尾时循环回起始位置。为了实现循环队列,需要在。到达数组末尾时,它应该回到数组的起始位置。
2024-04-24 20:46:35 187
原创 栈的简单应用:括号匹配
括号匹配问题主要出现在编程语言和数学表达式中,需要确保每种类型的开括号(如小括号"()",大括号"{}",方括号"[]")都有相应的闭括号与之匹配,并且这些括号的顺序是正确的。请注意,这个示例代码没有处理栈溢出的情况,只是简单地检查栈是否已满。在实际应用中,你可能需要更复杂的错误处理机制来确保程序的健壮性。),则检查栈顶是否为对应的开括号。如果是,则将栈顶元素出栈(即弹出);),则将其压入栈中,并更新栈顶位置。),则说明所有括号都匹配,返回。,表示还有未匹配的括号。:如果字符是开括号(:如果字符是闭括号(
2024-04-24 17:02:06 219
原创 栈的基本操作(顺序栈)
栈是一个特殊的线性表,顺序栈和顺序表的写法大同小异,这里采用动态申请内存的方式创建栈,也可以用#define MAXSIZE和创建数组来实现栈的创建,两者没有本质区别,在内存中都是连续的。栈的类型声明以及函数声明:stack.h。相关函数实现:stack.c。
2024-04-22 21:16:12 198
原创 VS2022调试技巧(一)
通过使用DEBUG,程序员可以逐指令执行程序,验证程序的正确性,追踪程序的执行过程,比较指令执行前后的值,以及读写文件和磁盘扇区等。进入调试窗口:在调试窗口中,可以看到程序执行到断点处时停住,右边可以看到当前所在的方法,以及程序中变量值的变化。执行后,程序将停在下一行的断点处,同时变量值也会相应更新。:通常在调试有函数代码中使用,如果不想进入该函数,逐过程可以直接跳过该函数,不进入函数内部,直接进入下一条语句。观察变量值:在调试过程中,可以观察程序中变量的变化情况,从而判断程序的执行流程是否正确。
2024-02-26 22:18:39 1193
原创 C语言指针全解
文章主要对于指针进行讲解,其中包括指针的大小,类型意义,指针运算,二级指针,指针数组等概念,希望读者对以上概念有一个深入的理解。
2024-02-11 16:45:19 1172
原创 C语言:表达式求值
本文档阐述了C语言中的隐式类型转换,包括整形提升、赋值时的数据截断、提升规则以及算术转换。文档通过实例解释了char和short类型在运算和赋值时如何被提升为int类型,以及操作符优先级和结合性对表达式求值顺序的影响。同时,指出了在某些情况下,表达式的执行顺序可能不唯一,这可能导致编译器结果不一致。
2024-02-07 10:52:36 1528
原创 C语言操作符总结:
在探索C语言的奥秘时,我们会遇到一系列强大的运算符,它们是编程世界的基石。这篇文章带你领略了算数运算符的简洁之美,如加减乘除,以及它们在整数和小数运算中的微妙差异。移位操作符让你在二进制世界中游刃有余,按位操作符则让你深入到比特层面,实现精确控制。赋值操作符不仅简单,还能与算数运算符结合,创造出复合赋值的魔法。单目运算符和关系运算符则在逻辑判断和变量操作中发挥着关键作用。逻辑运算符的短路现象,三目运算符的简洁表达,以及逗号表达式的顺序执行,都是编程艺术中的精妙之处。希望这篇文章能加深你对于这些操作符的理解
2024-02-06 13:27:57 1653
原创 分享:链表制作简单的学生信息统计
程序由几个函数组成,其中每个的作用都在注释中有说明,感兴趣代码原理可以阅读。使用时,注意正确的传递函数参数,可以根据需求自己更改部分打印内容。
2024-02-01 11:51:13 596 1
原创 结构体的应用:按照成绩的高低对学生信息进行排序并且输出(结合快速排序)
这里为了方便,我就输入了两个学生的信息.可以根据需要调整N即可。接下来是写一个比较的依据,以便于传入qsort中比较。可以根据需要进行调整.
2023-12-21 15:45:21 1036
原创 编程统计候选人的得票数。
设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。以下是对于这道题的解答,希望大家喜欢,注意我这里与原题不一样的点在于,我将读取(结构体初始化)候选人的步骤做成了一个函数,你可以根据你的需求选择是否使用.如果你要更全面一点,可以将选民个数,设为动态,对于候选人信息的输出也可以根据结构体中的数据而变化,这些都比较容易实现.输出格式为:"%8s:%d\n","Wrong election:%d\n"
2023-12-19 13:40:46 1192
原创 如何记录函数递归的次数----静态局部变量的使用
因为静态局部变量只会定义第一次,如果第二次函数执行到定义相同静态局部变量的语句的时候,程序不会再定义一个,说道这里大家应该都明白了.我们只需要将静态局部变量定义在函数(递归)的内部,就可以达到记录次数的目的.记录函数递归的次数,不像是其他普通的函数,只需要一个简单的局部变量作为计数器,每次++就好了,函数递归是不断地调用函数,换言之,如果你将一个局部变量定义在函数的内部,那么每次递归都会创建一个这样的变量,每次的值都会初始化,这样也就达不到记录递归次数的目的.为了解决这个问题,可以定义静态局部变量来解决。
2023-12-18 13:36:32 821
原创 嵌套根号的计算函数:
这里有一个点值得说明:那么就是x0的作用,这个是一个比较难理解的点,看到之后可能会点蒙,我不好叙述,简单的写了递归的过程,以及如果将x0替换为x会发生什么?所以错误的点在于x的值,也就是要嵌套的值发生了改变.
2023-12-14 19:16:19 791
原创 迭代法编写计算最大公约数的函数
根据最大公约数的如下3条性质,采用迭代法编写计算最大公约数的函数Gcd(),在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大公约数。\n",否则按如下格式输出"Gcd=%d\n"性质1 如果a>b,则a和b与a-b和b的最大公约数相同,即Gcd(a, b) = Gcd(a-b, b)性质2 如果b>a,则a和b与a和b-a的最大公约数相同,即Gcd(a, b) = Gcd(a, b-a)性质3 如果a=b,则a和b的最大公约数与a值和b值相同,即Gcd(a, b) = a = b。
2023-12-14 14:50:30 578
原创 编写函数实现将大于等于2小于等于N的整数按是否为素数分成两类。
给定一个[10,100]闭区间范围内的正整数N,编写函数void func(int N, int prime[], int *prime_count, int composite[], int *composite_count);(2)素数存放在指针prime指向的数组中,指针prime_count指向的位置存放素数个数,合数存放在指针composit指向的数组中,指针composite_count指向的位置存放合数的个数。(3)输出:共输出四行。第四行输出所有的合数,两个数字之间用空格隔开。
2023-12-03 14:28:10 581
原创 输入3个数x,y,z,按大小顺序排序后输出。要求:利用指针方法实现两数互换,函数原型为:void swap(int *p1,int *p2);
输出格式:printf("the sorted numbers are:%d,%d,%d\n", );要求:利用指针方法实现两数互换,函数原型为:void swap(int *p1,int *p2);输入提示:printf("please input 3 number x,y,z");输入3个数x,y,z,按大小顺序排序后输出。代码如上,比较简单.希望大家喜欢。
2023-12-03 13:55:23 564 1
原创 编程将字符串s倒序输出,要求利用函数递归实现。
*输入格式要求:"%s" 提示信息:"input your string:\n"编程将字符串s倒序输出,要求利用函数递归实现。**输出格式要求:"%c"
2023-12-01 14:57:59 686
原创 验证卡布列克运算
当你阅读完代码之后,你会发现输入任何数也会出现6174的关键在于,我始终对输入的数字做了四次取余,也就是说,输入6,相当于输入了6000.这是对于这道问题的解答,其实这道题,无论你输入任何数(没有超过数据储存的范围),经过几次函数之后,都会输出6174,是一个很神奇的事情.(2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数字中含有0,则得到的数不足四位);*验证卡布列克运算。(1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;
2023-12-01 11:35:02 756
原创 从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。
对于该题目解答分为三个函数如上所示,其中找最大和最小只用修改判断条件即可,不过有一个缺点就是如果数组中有重复的数据,只能查到一个值,如果有需要可以利用数组储存所要查找下标的值,对于本题,上述足矣.从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。输出数组中所有数据后换行。**输出提示信息:"Exchange results:"**要求输出格式为:"%5d"//计算数组最大值及最大值下标。**要求输入格式为:"%d"要求按如下函数原型编写程序。
2023-11-30 22:34:52 3160
原创 题目分享:同构数
编写程序,找出1~99之间的全部同构数。若一个数出现在它的平方数的右边则称它是同构数。例如:若5^2=25,则5是一个同构数。再如,若25^2=625,则25是一个同构数。输出格式: "m=%3d\t\tm*m=%6d\n"
2023-11-30 18:57:26 738
原创 请用循环语句进行程序设计(也可能用到if或switch语句),实现从键盘上输入一个日期,日期格式为:2018-7-9,判断这一天是这一年中的第几天。
请用循环语句进行程序设计(也可能用到if或switch语句),实现从键盘上输入一个日期,日期格式为:2018-7-9,判断这一天是这一年中的第几天。
2023-11-29 17:45:21 777
原创 利用一个字符数组作函数参数,实现字符串(最大长度为80个字符 )的逆序存放。
利用一个字符数组作函数参数,实现字符串(最大长度为80个字符 )的逆序存放。
2023-11-29 16:57:42 1301
原创 某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过40人参加考试。请编程计算:(1)每个学生的总分和平均分;(2)每门课程的总分和平均分。
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过40人参加考试。请编程计算:(1)每个学生的总分和平均分;(2)每门课程的总分和平均分。
2023-11-29 16:28:45 1169 1
原创 写一个函数,输入一行字符(字符串长度<=80),单词之间可以以空格作为分隔符,将此字符串中最长的单词输出,字符串中出现的非英文字符不统计不输出。
写一个函数,输入一行字符(字符串长度
2023-11-28 10:00:12 1147
原创 填表格:将1、2、3、4、5和6填入2行3列的表中,要使得每一个列右边的数字比左边的数字大,每一行下面的数字比上面的数字大。按此要求,可有几种填写方法?
将1、2、3、4、5和6填入2行3列的表中,要使得每一个列右边的数字比左边的数字大,每一行下面的数字比上面的数字大。按此要求,可有几种填写方法?**输出提示信息:"The possible table satisfied above conditions are:\n"**输出格式要求:"\nNo.:%d" "\n%3d" "%3d"
2023-11-28 08:47:38 697
原创 请编写一个查找子字符串的程序,并统计子字符串出现的次数。
请编写一个查找子字符串的程序,并统计子字符串出现的次数。**输入格式要求:"%s" 提示信息:"请输入主串:" "请输入要查找的串:"**输出格式要求:"%s,%s:" "子串出现的次数:%d\n" "子串不在主串中\n"程序运行示例1如下:请输入主串:Hello,world!请输入要查找的串:lHello,world!,l:子串出现的次数:3程序运行示例2如下: 请输入主串:Hello,world!请输入要查找的串:abcHello,world!,abc:子串不在主串中
2023-11-26 18:29:46 1172
原创 字符串的查找,部分复制,插入字符串函数
今天来为大家分享一些字符串函数:具体功能有查找所要字符下标,部分复制字符串,将某一个字符串插入另一个之中,都是字符串操作中常用的函数,对于3.1因为比较简单,结合字符串的查找就部分复制就可以完成.
2023-11-25 17:49:25 468
原创 将1到9这九个数字分成三个3位数,要求第一个3位数,正好是第二个3位数的二倍,是第三个3位数的三倍,问应当怎样分。
将1到9这九个数字分成三个3位数,要求第一个3位数,正好是第二个3位数的二倍,是第三个3位数的三倍,问应当怎样分。
2023-11-23 16:25:38 370
原创 一维数组与指针结合应用
1.在函数中:用指针传递数组:这里有两种传递方式,都是同样的意思,这里写了一个逆序数组的函数,来只管表达。第二种:指针指向数组第一个,传递第一个地址,函数内部解应用。第一种:直接传递数组名字,可以用指针代替数组名直接使用。2.应用指针循环遍历数组。
2023-11-23 09:51:07 696
原创 计算阶乘的函数,四舍五入(结果为整数)函数,逆序一个整数的函数,判断是否为素数的函数,计算三角形面积和求根公式对应函数
以上都是一些比较常用到的函数,使用起来方便快捷,事半功倍.如果有疑问可以发表在评论区。
2023-11-21 19:57:54 61
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人