C
文章平均质量分 60
BearPot
你太容易因为别人优秀而焦虑 你需要的是平静的把自己的事做好
展开
-
syslog.h使用
linux操作系统现在rsyslogd取代了原先的syslogd服务,rsyslog 是一个 syslogd 的多线程增强版,其配置语法与syslogd的配置文件一致。(2) format:们与传入 printf()中的参数是一样的,但与 printf()不同的是这里的格式字符串不需要包含一个换行字符。LOG_UPTO()宏创建一个能过滤特定级别以及以上的所有消息的位掩码。(2)传入 openlog()的 log_options 参数是一个位掩码,它是下面几个常量之间的 OR 值。原创 2023-06-21 09:31:00 · 712 阅读 · 0 评论 -
有关传值和传地址的问题
最近写项目的过程里,碰到个传地址进入的小问题,虽然解决了,不是什么问题,但是想想自己最初学编程的时候对于指针这块的头大,就想着还是写个小demo记录一下,让刚刚学习编程的人可以明白传值和传地址是个怎么回事?打印地址发现,p和ptr指向的都是a这块内存,但是p和ptr本身地址不同,且p最后修改了指向,p的指向地址改变而ptr不变,都能说明p是ptr的一份拷贝。实参和行参都指向同一个对象,因此对于解引用之后都是指向同一块内存,对于解引用后形参的改变当然能去改变实参的值了。传引用 是真正的以地址的方式传递参数。原创 2023-02-08 11:33:52 · 480 阅读 · 1 评论 -
复杂的指针面试题
对于*和++二者优先级相同,计算顺序是从右到左,对于*和++或--都比+或-的优先级高,对于+或-运算顺序为从左向右。原创 2022-08-19 11:32:10 · 288 阅读 · 0 评论 -
LeetCode HOT 100(买卖股票的最佳时机)
前情回顾:LeetCode HOT 100(爬楼梯)【LeetCode】热题100 找出一个数组中只出现一次的数目录问题描述:暴力求解(超时):代码示例:一次遍历求解(贪心法求解):解题思路:关键点:代码示例:动态规划求解:五部曲解题思路:代码示例:问题描述:给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 ...原创 2022-04-16 21:47:03 · 272 阅读 · 0 评论 -
课程设计(飞机订票系统) 超全
搭建思路图:操作使用链表实现,编译器使用vs2019成员框架搭建:用户进入操作界面,选择添加机票信息,包括(飞机航班号,出发地,目的地,起飞时间,降落时间,飞机票价,当日折扣,机票总数)进入订票系统,输入起飞地,目的地,调用查询函数会打印机票信息到屏幕,若没有则告知,如果有,订票人开始订票。输入(姓名,身份证号,性别,订购航班,购票数量)#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<std原创 2022-03-17 18:50:10 · 11701 阅读 · 24 评论 -
图书管理系统(附源码及操作动图演示)
功能框架图:整体源码在文章最后,这个系统搭架定义了一些全局变量,且系统功能都要调用文件函数,效率低下,优化可根据自行改为使用线性表,数据库等,此代码适用纯C语言阶段学习。总体框架的搭建:#include<stdio.h>#include<windows.h>#include<conio.h>#define BOOK_NUM 200#define READER_NUM 200#define BOOK_DATA astBook[i].iNum,原创 2022-02-25 13:28:38 · 4840 阅读 · 2 评论 -
三子棋(附源码)
一.基本流程1.创建初始菜单页面2.初始化棋盘(3*3)3.打印棋盘内容4.玩家下棋5.电脑随机下棋6.判断输赢二.游戏设计函数声明:#pragma once#include<stdio.h>#include<stdlib.h>#include<time.h>#define ROW 3 //行#define COL 3 //列//菜单函数void meau();//初始化棋盘void Init原创 2022-01-15 22:19:03 · 2062 阅读 · 0 评论 -
猜数字游戏
前言对于初学C语言的同学,如果学习了(顺序、选择和循环),那么根据所学写一个猜数字游戏也是很有意思的。游戏内容顾名思义,猜数字就是系统给你一个随机数字(这里我们让系统给出随机的1-100的数字便于猜测),让你去猜正确与否,直到猜对为止。思路1:构建一个菜单列表 1.play 0.exit 输入1则开始游戏,输入0则退出游戏 2:利用循环语句使玩家可以多次进行游戏,直到主动选择退出游戏 ...原创 2022-01-03 14:36:33 · 357 阅读 · 0 评论 -
字符串逆序输出
字符串反转方法1:下标法,定义一个i下标从头开始,使用strlen函数求出字符串长度(不包括'\0'),定义一个j下标等于字符串长度减一,i,j下标字符进行交换,只需要遍历字符串长度一半即可方法2:额外创建一个数组,求出原字符串长度,定义下标j为字符串长度减一,从尾巴开始遍历将字符复制到新数组,最后结尾记得加'\0'方法3:我们可以让一个指针(类似于下标的用法,代表字符的地址),从头走到尾,然后进行字符交换如上图当str和p同时指向c时停止,那么交换结束,但如果字符串长度为偶数,且当s.原创 2021-12-19 23:23:43 · 6260 阅读 · 0 评论 -
【LeetCode】热题100 找出一个数组中只出现一次的数
问题描述:一个数组中只有一个数字是出现一次,其他所有数字都出现了两次。找出这个只出现一次的数字,编程实现。思路:最简单直观的方法,我们用两个for循环,外循环用i,内循环用j表示,数组长度用len表示外循环执行一次,内循环执行len-1次,逐一比较,如果相等就给count++,外循环一次结束,如果count = 1,说明这个数就出现了一次,打印arr[i]即可代码示例:void fond(int* p, int len){ int count = 0; for (...原创 2021-11-23 20:46:57 · 1754 阅读 · 2 评论 -
(指针详解1)例:用函数编写两个数的交换
前言:我们在初学c语言时都会遇到的一个题目,那就是交换两个数字的大小,我们需要定义两个变量保存两个值,再定义一个temp进行中间值保存int temp=0;int a=10;int b=20;temp=a;a=b;b=temp;那么在后面我们接触到了指针,我们该如何使用指针进行两个数的交换呢?一、指针是什么通过地址能找到所需的变量单元,我们可以说,地址指向该变量单元。 指针就是地址。 指针(地址)变量: 类型*变量名 储存的就是指针指针变量就是一个变...原创 2021-11-09 11:28:34 · 6450 阅读 · 2 评论 -
经典算法:魔方阵(奇数)
魔方阵的说明:将1到n(为奇数)的数字排列在n*n的方阵上,且各行、各列与各对角线的和必须相同此篇文章只讲如何编写奇数阶魔方阵规律:⑴ 将1放在第一行中间一列⑵ 从2开始直到n×n止各数依次按下列规则存放: 每一个数存放的行比前一个数的行数 -1,列数 +1⑶ 如果上一个数的行数为1,下一个数的行数应为n,即最后一行 //理解为封闭环形⑷ 如果上一个数的列数为n,下一个数的列数应为1,即第一列 //理解为封闭环形⑸ 如果按上面规则确定的位置上已有数,则把下一个数..原创 2021-10-30 17:52:00 · 4651 阅读 · 2 评论 -
二分查找(折半)
目录折半查找排序过程代码实现一、折半查找折半查找(Binary Search)也称二分查找,是一种效率较高的查找方法,但是折半查找有局限性,它只适用于顺序存储结构的有序表二、排序过程从表的中间位置开始,判断与给定的值是否相等,若相等则查找成功,若不相等,根据中间值的大小,将查找范围缩小一半到左序列或者右序列,重复操作,完成查找- - 优点 比较次数少,查找效率高 缺点 只适用于顺序存储的有序表 图示:算法思路:这里我..原创 2021-10-31 12:45:00 · 454 阅读 · 0 评论 -
八皇后问题(适合初学者的写法)C语言
什么是八皇后问题:八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种计算机语言可以解决此问题。PS:这篇文章想法思路简单,代码量长,适合初学者学习,能更好的的理解这个...原创 2021-10-30 16:05:18 · 13654 阅读 · 6 评论 -
C语言:杨辉三角(使用二维数组)
前言:杨辉三角的特点如下:11 11 2 11 3 3 11 4 6 4 1... ...(1)第一列和对角线上的元素都为1;(2)除第一列和对角线上的元素之外,其他的元素的值均为前一行上的同列元素和前一列元素之和。因此关键语句是求其他元素。我们设当前元素行为i,列为j定义一个二维数组arr[20][20],那么所求元素为arr[i][j]=arr[i-1][j]+arr[i-1][j-1]话不多说上代码:int main().原创 2021-10-27 21:24:42 · 6491 阅读 · 5 评论 -
C语言:输入一个整数 求它是几位数
题目:输入一个整数求它是几位数求位数,就是把整数的最末位扔掉,然后保存扔了几次,次数即为数字位数这里我们演示的是十进制数字位数假设输入的是:1234 1234/10 得到123 循环一次 123 123/10 得到12 循环两次 12 12/10 得到1 循环三次 ...原创 2021-10-20 22:01:06 · 29008 阅读 · 11 评论 -
C语言:算法 用面值为1元,5元,10元不限张数的人民币凑出20元,有多少种方法
思路想法:这种题目就是运用最基本的穷举法的思想,用循环将每一种可能性罗列出来,用数学思维考虑,与打乒乓球对打方案的题目类似下来我们进行代码演示代码示例:int main(){ int cout = 0;//定义一个计数器 保存有多少种方法 for (int i=0; i <= 2; i++) // i对应10元 j对应5元 k对应1元 { for (int j = 0; j <= 4; j++) { for (int k = 0; k <=原创 2021-10-20 21:32:41 · 2070 阅读 · 0 评论 -
C语言:用选择法进行数组 数字排序
算法:选择排序从小到大排序,拿第一个位置的元素去和后面的元素比,找到最小的,二者位置上的元素进行交换,在拿第二个位置的元素和后面的比,以此类推。定义一个保存最小值的数组下标mindex,在循环里 假设第一个数就是最小值 用mindex保存,在待排序序列中进行比较,如果后面小,则交换下标,交换值代码示例:int main(){ int arr[10]; printf("请输入十个数:"); int temp=0; int mindex;//最小值的下标 for (in.原创 2021-10-19 22:31:10 · 3814 阅读 · 0 评论 -
C语言:如何判断一个整数是否为回文数,基础算法
回文数:回文数“是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,例如-121 倒读也是-121正读倒读一样,所以这个数字就是回文数。思路:输入一个数据 我们只需要将数据倒着打印出来即可。eg:输入n=121 m作为倒序输出的值 初始化为0 m=m*10+121%10 121%10 -> 1 输出 m=1 n=n/10 121/1...原创 2021-10-16 15:50:09 · 8679 阅读 · 2 评论 -
C语言:斐波那契数列最简单方法
题目:斐波那契数列(Fibonacci sequence),指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n ≥ 2,n ∈ N*)思路:斐波那契数列的核心思想就是当下一次循环时,上次循环的第一个数等于上次循环的第二个数,上次循环的第二个数等于上次循环的第三个数,也就是第一个数加第二个数的值。代码示例:int main(){ int f1 = 1;原创 2021-10-13 22:40:21 · 5180 阅读 · 0 评论 -
C语言:给一个正数,求出他是几位数,分别输出每一位数字,按逆序输出各位数字,例如原数为321,应输出123
题目://给一个正数//求出他是几位数//分别输出每一位数字//按逆序输出各位数字,例如原数为321,应输出123思路:1.几位数,逆序输出:设n=123 %10 得3 得到个位输出,再丢掉个位 123/10得12 循环当n/10等于0 输出循环次数及为几位数2顺序输出:设n等于123, 123/100 得最高位1 输出,再丢弃最高位1,123%100得23;23/10得2,输出,再丢弃23%10得3, 3/1得3输出 。 n/10^n位次-1 n%10^n...原创 2021-10-13 21:00:20 · 11835 阅读 · 2 评论 -
C语言:猴子吃桃问题
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子?思路:逆向思维,从最后一天算起,最后一天剩一个,那么前一天就剩(1+1)*2个因此设某一天剩桃子m个,前一天桃子n个,往前类推即n=(m+1)*2注意:10天最后一天只剩1个桃子,程序只需循环9次代码示例:运行结果:...原创 2021-10-05 12:07:14 · 16326 阅读 · 9 评论 -
C语言:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。排出比赛名单
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。思路:循环依次比较,两两比较,判断参赛队员是否重复,因此需要两个if 在循环中间判断代码实现://两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人//以抽签决定比赛名单。有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比//请编程序找出3对赛手名单i原创 2021-10-05 13:23:34 · 26415 阅读 · 1 评论 -
谭浩强c语言程序设计第四版课后习题:求Sn=a+aa+aaa+aaaa+...n个a ,a是数字 ,n表示a的位数
题目:计算 a+aa+aaa+aaaa+aaaaa+…+a…a(n个a)的值,n和a由键盘输入。思路:解决这种问题一般是找规律,找出通项。假设a=2 n=3那么就是2+22+222,其中22=2+2*10^2222=2+2*10^2+2*10^3那么我的想法就是定义a,n和一个b,让b的初始值等于a,在循环体中让b等于每一次算完的新一项,在定义一个sum用来储存每次算完的前几项和代码示例如下://求sn=a+aa+aaa+aaaa+...n个a ,a是数字 ,n表示a的位数原创 2021-10-05 13:44:07 · 5021 阅读 · 1 评论 -
C语言:给一个不多于5位的正整数,要求:求出他是几位数分别输出每一位数字,按逆序输出各位数字,例如原数为321,应输出123
题目:给一个不多于5位的正整数,要求:求出他是几位数分别输出每一位数字,按逆序输出各位数字,例如原数为321,应输出123思路:构造循环,将输入的数字进行取余,并且依次输出余数,再对其进行除数操作,得到的商再进行取余输出操作。例如321取余为1,输出1.321除10商32 32取余为2 输出232除10商 3 3取余为3 输出3结果123代码示例:int main(){ int num; int temp = 0; printf("请输入数字:"); scanf(..原创 2021-10-07 20:31:00 · 18244 阅读 · 13 评论