![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
彬哥^
这个作者很懒,什么都没留下…
展开
-
C语言链表相关问题:
文章目录链表简述计算与指定数字相同的数的个数链表简述链表是通过指向结构的指针把自定义的结构类型结点串连起来,形成复杂数据存储模式。下图给出了链表的图形模拟:head的值为第一个结点的地址,链表以结点为单位进行连接,在C语言中,我们用一个结构体类型表示这个结点typedef struct node{ int data;//数据域 struct node* next;//指针域}...转载 2019-10-31 09:36:22 · 194 阅读 · 1 评论 -
C语言笔记:位运算问题
文章目录位运算简介常见的位运算符(运算符优先级按表下到上依次增高,如~为最高优先级)位运算实例1、给定一个整数a,设置a的二进制表示中bit5为1,其它位不变位运算简介C语言中的各种运算都是以字节的形式进行,在编写很多系统程序时,如驱动程序、磁盘文件管理程序等,常要求将数据按位(bit)进行运算或者处理。计算机中的数据(不管是整型,浮点型,还是字符型)在内存中都是以二进制的形式进行存储的,位运...转载 2019-10-27 10:44:38 · 2342 阅读 · 0 评论 -
C语言笔记:高精度计算问题
文章目录C语言中大数据类型的简述高精度加法C语言中大数据类型的简述我们知道,计算机内部直接使用int或者double等数据类型存储数据是有范围限制的,当运算数据较大时,计算机将会出现溢出情况,使得计算结果不够精确。例如,一个20位的十进制整数,如果用int类型变量存放,就会出现数据溢出。当运算数超出了整型、实型能表示的范围,肯定不能直接用一个数的形式来表示。在运算过程中,能表示大数的数据类型有...转载 2019-10-24 16:47:12 · 12072 阅读 · 2 评论 -
C语言笔记:字符串处理相关问题
文章目录统计字符数(仅支持小写)支持统计大小写统计字符数(仅支持小写)问题描述:判断一个由a~z这个26个小写英文字符组成的字符串中哪个字符出现的次数最多。输入数据占1行,是一个由a~z这26个小写英文字符组成的字符串,不超过1000个字符且非空。输出1行,输出1行,包括出现次数最多的字符和该字符出现的次数(中间用空格隔开)。问题分析:由于字母在ASCII表中时连续的,因此可以用一维数组c...转载 2019-10-15 16:16:32 · 1989 阅读 · 0 评论 -
C语言笔记:鞍点问题
问题描述:有一个m*n(1<n和m<=10)的矩阵,矩阵中每行只有一个最大值,每列只有一个最小值,要求找出该矩阵的鞍点。什么是鞍点?即矩阵中的一个元素,即是所在行的最大值,又是所在列的最小值。要求如果有鞍点输出它的坐标和值,如果没有鞍点则输出“无鞍点”解决思路:首先做一个外层循环,行号row从1开始,查找row行中最大元素a[row][col],col为第row行最大元素所在列...转载 2019-10-15 10:44:34 · 1297 阅读 · 1 评论 -
C语言笔记:同行同列同对角线的格子
问题描述:输入三个自然数:n(n<=10),i(1<=i<=n),j(1<=j<=n),输出在n*n格的棋盘中(行列从1开始)与格子(i,j)同行、同列、同一对角线所有格子的位置。如图,蓝色是输入部分,红色是输出部分:#include <stdio.h>int main(void){ int n,i,j; printf("输入n,i,j:\...转载 2019-10-15 09:38:04 · 1284 阅读 · 0 评论 -
C语言笔记:数组元素查找
文章目录常规查找法(顺序查找)折半查找法(二分查找)算法描述实现代码常规查找法(顺序查找)顺序查找是按照一定顺序将各个数据与待查数据进行比较,看是否有与要查找的数据相等的数据,查找的结果有两种:查找成功与查找失败#include <stdio.h>#define N 10void Input(int a[],int n);//杈撳叆鏁扮粍鐨刵涓厓绱?int Search(...转载 2019-10-13 20:19:44 · 8039 阅读 · 2 评论 -
C语言笔记:使用库函数qsort完成排序
文章目录简介对N个整数进行排序对N个浮点数进行排序对N个结构体元素进行排序简介qsort 是stdlib.h的头文件中的万能排序函数,快速排序是目前公认的一种比较好的排序算法。因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用。 这就是qsort函数(全称quicksort)。函数原型:void qsort(void *base,size_t nmem,size_t size,i...转载 2019-10-13 16:05:14 · 810 阅读 · 0 评论 -
C语言笔记:快速排序法精讲
文章目录算法描述法一:左右交换法实现法二:填坑法实现(修改一下Partition1函数)快速排序的稳定性问题算法描述简介:快速排序法是对冒泡排序法的一种改进,因为冒泡排序法只是一端不断循环交换相邻符合条件的元素到另一端,若有n个元素,则共要循环n-1次。而在快速排序中,元素的比较和移动是从两边同时进行的。值较大的元素一次就能从前面移动到后面,值较小的元素一次就能从后面移动到前面,元素移动距离较...转载 2019-10-13 09:48:23 · 252 阅读 · 0 评论 -
C语言笔记:插入排序法精讲
文章目录算法描述关于插入排序法的稳定性问题算法描述插入排序总的思维来讲,就是每一趟将一个待排序的元素,按照其值的大小插入到有序序列的合适位置上,使有序序列长度增加1,直到所有元素全部插入完成。我们可以举一个形象的例子,比如我们玩扑克牌斗地主时,每次从牌堆中抓一张牌,是不是需要按顺序插入到已有牌(从小到大排好了)序列中,方便我们抓完牌之后,出牌,出顺子,连子等等。假设只有6张牌,从上到下分别...转载 2019-10-10 20:33:18 · 307 阅读 · 0 评论 -
C语言笔记:冒泡排序法精讲+改进
文章目录算法描述+实现改进一改进二算法描述+实现第一轮:从上往下扫描数组的N个元素,先比较第一对相邻元素(第一个元素与和第二个元素),如果逆序(第一个元素大于第二个元素)则交换,使小元素上移,再比较第二对相邻元素(第二个元素和第三个元素),如果逆序则仍交换,以此类推,经过第一轮处理,小元素慢慢上移,而最大的元素被移到最后的位置上,这也是它最终应该在的位置(最底部)第二轮:对于无序区的N-1...转载 2019-10-10 12:30:29 · 631 阅读 · 0 评论 -
C语言笔记:循环数组的应用
文章目录机器翻译约瑟夫环问题机器翻译问题描述:某同学计算机上安装了一个翻译软件,原理是从头到尾依次将每个英文单词用对应中文含义替换。对每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译意放入内存,方便后续的查找和翻译,现需要输入两行,第一行输入两个正整数M(不...转载 2019-10-10 09:05:51 · 343 阅读 · 0 评论 -
C语言笔记:筛选法求质数(适用于求解大范围内数里面质数的个数)
问题描述:输入一个整数n(<=100),求1~n之间的所有质数并且输出,并且按每行5个输出问题分析:求一个范围内的质数个数,按传统方法是外层做一个循环(循环控制变量为i),取出这个范围的每一个数i;内层再做一个循环(循环控制变量为j),依次判断这个数i%[2,i-1]否为为0,若i在[2,i-1]这个区间有一个数除的尽,则i这个数不是质数。对于1~n(用户输入)每个数都会做一次内层循环...转载 2019-10-07 16:13:22 · 1819 阅读 · 0 评论 -
C语言笔记:与日期相关问题的集合
文章目录问题一:n天后日期问题方法一方法二问题一:n天后日期问题问题描述:已知一个日期以及任意整数n,求n天后的日期。方法一问题分析:可通过求每一日的下一日实现,即每向后推移一日就求一次日期,总共需要循环n次求下一日,即可得到已知n天后的日期。故设计函数void NextDay(Date *pd)。此时还需要考虑3种情况:(1)、如果当前日期不是月末(即每月的最后一天),则第二天的日期...转载 2019-10-06 09:11:08 · 1320 阅读 · 0 评论 -
C语言笔记:time.h标准库操作时间相关问题
文章目录time.h文件与时间相关的数据类型和函数代码实例time.h文件与时间相关的数据类型和函数在C语言的头文件time.h中,定义了日期和时间的数据类型以及函数。C语言中有两种方式表示时间日期的值:time_t类型和struct tm类型。以下是time.h头文件的常用的时间数据类型截图:typedef long clock_t;typedef _int32 _time32_t;...转载 2019-10-03 09:48:23 · 573 阅读 · 0 评论 -
C语言笔记:进制转换与32位二进制IP地址转换十进制问题
问题描述:假设需要编写一个程序,实现32位二进制IP地址(32个字符长的1和0)转换为点分十进制格式并输出。IP地址的点分十进制格式通过将32位从低位到高位(右到左)一次分组八位,总共分4次,任何8位二进制数对应的十进制数都是IP地址的有效部分。C语言实现代码:/*问题描述:假设正在读取表示IP地址的字节流,任务是将32个字符长的1和0(位)序列转换为点分十进制格式,IP地址的点分十进制...转载 2019-10-02 16:38:04 · 6260 阅读 · 0 评论 -
C语言笔记:多项式的求值问题
文章目录多项式简介问题场景以及实现代码四种解决方法剖析多项式简介在数学中,由若干个单项式相加组成的代数式叫做多项式(若有减法:减一个数等于加上它的相反数)。多项式中的每个单项式叫做多项式的项,这些单项式中的最高项次数,就是这个多项式的次数。其中多项式中不含字母的项叫做常数项。问题场景以及实现代码问题描述:假设一个n次多项式其中n是多项式的次数(即多项式中次数最高的项的次数),ai中存储...转载 2019-09-28 19:46:52 · 5560 阅读 · 0 评论 -
C语言笔记:逗号表达式的一点陷阱
有一道C语言题目是这样的:若a是int型变量,则“(a=45,a2),a+6”表达式的值为( )。解释:我填的是46,答案是26。为什么,首先a=20这个没错,但把a=a2联系起来就错了,a2和a的值没半毛钱关系,a2=202=40只是一个在一个不知道内存地址的某个临时存储区存放的数据,20是一个程序员可以知道内存地址的一个值,接着涉及到C语言的逗号表达式了,我们进一步用逗号表达式分...原创 2019-09-07 21:57:33 · 432 阅读 · 0 评论 -
C语言笔记:求最大公约数
文章目录简介穷举法(for循环实现)辗转相除法(while循环实现)简介如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。穷举法(for循环实现)按照从大(两个整数中较小的数)到小(到最小的整数1)的顺序求出第一个能同时整除两个整数的自然数,即为所求。#include...转载 2019-09-08 10:05:10 · 964 阅读 · 0 评论 -
C语言笔记:找零问题
问题:现有1角,2角,5角纸币若干枚。现在输入2元,输出全部找零搭配#include <stdio.h>int main(void){ int m; int ones,twos,fives;//各种钱币面值的枚数 printf("请输入需要找零的钱数:\n"); scanf("%d",&m); printf("找零方案有:\n"); for(ones=1;o...转载 2019-09-12 08:50:58 · 2496 阅读 · 0 评论 -
C语言笔记:推理问题
问题:一位法官在审理一起盗窃案时,对涉及的四名嫌疑犯A,B,C,D进行审问。四人分别供述如下:A:罪犯在B,C,D三人之中B:我没有作案,是C偷的C:在A和D之间有一个是罪犯D:B说的是事实但经过警方正确的调查,目前能确定的是四人之中只有两个说了真话,并且罪犯只有一人。请确定真正的罪犯。分析:有四个人(四个循环,嵌套的),每个人有两种情况,即是罪犯或不是(可用数字代替,0代表不是罪犯,...转载 2019-09-12 09:21:18 · 4402 阅读 · 3 评论 -
C语言笔记:求斐波那契数列
#include <stdio.h>int main(void){ int n1=1,n2=1; printf("%5d%5d",n1,n2); for(int i=3;i<=20;i++) { int tmp=n1+n2; printf("%5d",tmp); n1=n2; n2=tmp; if(i%5==0) { printf("\n...转载 2019-09-12 09:46:21 · 228 阅读 · 0 评论 -
C语言笔记:模块化编译链接(MinGW)
文章目录简介例子简介在我们入门C/C++语言时,编写的大部分C语言程序都只包含一个源文件,没有将代码分散到多个模块中,这里的模块指的时不同的源文件,每个文件称为一个可编译单元,可以分别编译。在C语言中,我们可以将一个.c文件称为一个模块(Module);所谓模块化开发,是指一个程序包含了多个源文件(.c 文件)以及头文件(.h 文件)。C语言由源代码生成可执行文件的各阶段如下:C源程序-...原创 2019-09-13 16:44:44 · 546 阅读 · 1 评论 -
C语言笔记:将输入的一组整数逆置输出
文章目录代码一代码二代码一/*将一组整数逆置:输入n(n<=10)及n个整数,将这组整数逆置输出 */#include <stdio.h>int main(void){ int n[10]; int i=0; while(i<10) { printf("请输入第%d个数:\n",i+1); scanf("%d",&n[i]); i+...原创 2019-09-15 09:39:30 · 4729 阅读 · 0 评论 -
C语言笔记:字符串简单加密
/*字符串的简单加密:对给定的字符串,把其中从a~y,A~Y的字母用其后续字母替代,把z和Z分别用字母a和A替代 */#include <stdio.h>#include <string.h>int main(void){ char text[80]; int len; printf("请输入要加密的字符串:\n"); gets(text);//字符串...转载 2019-09-15 22:35:37 · 7322 阅读 · 2 评论 -
C语言笔记:假设有一个数组a[5],则&a[0]与a与&a的区别
先来看一下代码#include <stdio.h>int main(void){ int a[5]={1,2,3,4,5}; int *p1=&a[0]; int *p2=a; //int *p3=&a;//报错 int (*p3)[5]=&a; printf("&a[0]=%X\na=%X\n&a=%X",p1,p2,p3...原创 2019-09-20 20:07:22 · 1183 阅读 · 0 评论 -
C语言笔记:链表的简单理解
文章目录简介代码加图示简介(1)什么是链表?其特点是什么?线性链表(包括单链表,双向链表,单向循环链表等多种形式,这里仅讨论单链表)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。我们使用数组可以保存一系列相同类型的数据,但是数组的空间大小是固定不变的(编译时确定),如果数据元素的数量不确定,使用数组来存放就会非常麻烦,经常会出现存储空间浪费...原创 2019-09-23 16:46:00 · 416 阅读 · 0 评论 -
C语言笔记:10以内的随机数四则运算考试系统
文章目录问题场景与实现代码改进与实现代码问题场景与实现代码描述:编写一个程序,能随机出几道1~10之间的整数的加法(或减法,或乘法,或除法)题给小学生作答出题数(int n), 和运算符(char op)种类 由输入决定,(分支一)对于每道题如果学生给的答案正确,显示ok,进行下一道题, (分支二)如果答案不正确,则显示no,返回重做此题,重做此题的次数最多3次,如果3次均没有答对,则显示...原创 2019-09-27 11:51:09 · 3352 阅读 · 0 评论 -
C语言笔记:算数表达式求值问题
文章目录问题场景以及实现代码进一步思考以及优化代码问题场景以及实现代码问题描述:完成不含括号的整数的加减乘除四则运算的长算式(含两个运算符)的求值,其中所有的中间结果均为整数。输入一行不含括号的加减乘除四则运算的长算式,"="表示输入结束。输出有三种情况:1、如果能够进行运算则输出运算结果2、如果出现除以零的情况,输出Divided by 03、如果运算符不是加减乘除符号,则输出er...原创 2019-09-27 16:57:58 · 1444 阅读 · 0 评论 -
C语言笔记:数制与进制(数制)之间转换问题
文章目录简介进制的基本概念二进制、八进制、十六进制加减法的区别二进制八进制十六进制数制之间的转换情景一、将二进制、八进制、十六进制转换为十进制(总结:按权相加)整数部分(不带小数)整数部分+小数部分情景二、将十进制转换为二进制、八进制、十六进制(总结:整数部分为除 N 取余,逆序排列,小数部分为乘 N 取整,顺序排列,N为要转换对应进制的基数)整数部分(不带小数)整数部分+小数部分情景三、二进制和...转载 2019-09-28 16:23:31 · 1085 阅读 · 0 评论 -
C语言笔记:关于强制类型转换的一点总结
文章目录强制类型转换与自动类型转换综合示例强制类型转换是临时类型转换强制类型转换与自动类型转换综合示例#include <stdio.h>int main(){ int dividend=9;//被除数 int divisor=2;//除数 int result1=dividend/divisor;//除法运算符对于整型操作数采取向零取整,舍弃余数的原则,即resul...原创 2019-09-07 19:46:31 · 266 阅读 · 0 评论