C语言编程
田野麦子
这个作者很懒,什么都没留下…
展开
-
经典两级运放设计 | C语言辅助设计
简介:本文主要用C语言实现经典两级运放架构的参数计算。目的是整合繁琐的代数运算,提高设计效率。两级运放原理图:电路各部分间的约束关系:设计步骤:【注:Si=(W/L)iS_i = (W/L)_iSi=(W/L)i】(1) 计算Miller补偿电容CLC_LCL:Cc>0.22CLC_c > 0.22C_LCc>0.22CL(2) 计算尾电流I5I_5I5...原创 2020-05-03 00:11:42 · 4038 阅读 · 0 评论 -
C语言维数未知的二维数组作为函数形参时的传递问题
关键:本文主要针对维数未知二维数组作为函数形参进行传递时的形参类型声明问题,具体声明方法如下代码所示;注意:下面这种声明方式是错误的,编译器会提示m, n unclear,这可能是因为编译器顺序编译的原因吧,但只要调整声明顺序,就可以编译通过了。void print_arr(int a[m][n], int m, int n);推荐使用:/*---------------------...原创 2019-03-11 18:15:14 · 4006 阅读 · 4 评论 -
C语言求解水坑问题
主要思路:1.用一个二维数组来存放用户从键盘输入的水滴分布矩阵;2.遍历整个二维数组,对有水滴存在的位置周围的8个方向进行递归搜索,判定是否存在相邻接的水滴,同时水坑数加1;关键:本程序的关键在于维数未知的二维数组作为函数形参时的参数声明问题。可参考代码中的解决方式。/*---------------------------------------------------功能:计算水坑...原创 2019-03-11 18:30:57 · 2739 阅读 · 1 评论 -
C语言求解猴子吃花生问题
主要思路:根据猴子移动规则,只需计算其在任意前后两个点之间的移动距离,然后迭代累加即可。注意最后要累加上回到原点的一段距离。/*---------------------------------------------------------功能:计算猴子移动路程问题描述:猴子需从原点(0, 0)开始按输入坐标点的顺序去寻找并吃掉该位置处的花生,最后需返回原点,计算猴子的移动路程。输入...原创 2019-03-11 21:56:04 · 687 阅读 · 0 评论 -
C语言实现矩阵操作
问题描述:从文件中读取多组测试数据,对读取的矩N阶阵Arr做如下操作:1.将Arr中第1列中,从第1行到第N行中最大数据所在行数据,与第1行数据交换;2.将Arr中第2列中,从第2行到第N行中最大数据所在行数据,与第2行数据交换;依次类推。。。3.将Arr中第N-1列中,从第N-1行到第N行中最大数据所在行数据,与第N-1行数据交换;操作完成后打印输出变换后的矩阵。注意:注意文件读...原创 2019-03-16 11:53:36 · 5487 阅读 · 0 评论 -
C语言合并字符串
注意:注意字符串结束条件的判断。/*---------------------------功能:合并字符串描述:将str2逆序插入到str1中输入示例:ABCDEFGHIJK1234输出示例:A4B3C2D1EFGHIJK----------------------------Author: Zhang KaizhouDate: 2019-3-16 14:47:41---...原创 2019-03-16 14:47:51 · 7719 阅读 · 0 评论 -
C语言求解滑雪问题
主要思路:1.用一个全局二维数组存放用户输入的高度矩阵;2.定义一个二维数组visited[ ][ ]初始化为0,用做访问矩阵,同时复用作该位置结点最长路径的记录矩阵;只要路径数据不为0,则说明该点已访问过了;3.对高度矩阵中的点逐个进行深度优先遍历,直至找出最长路径为止;4.注意深度优先遍历的递归结束条件为当前点已访问过或者当前点已越界。/*----------------------...原创 2019-03-12 15:00:06 · 4052 阅读 · 4 评论 -
C语言判断三条边能否构成三角形
算法基础:两边之和大于第三边,并且两边之差小于第三边时可构成三角形。/*----------------------------------功能:判断三条边能否构成一个三角形输入示例:23.1 4 51 2 3输出示例:YesNo-----------------------------------Author: Zhang KaizhouDate: 2019-3-17 ...原创 2019-03-17 13:01:45 · 18942 阅读 · 0 评论 -
C语言实现对多组个数不定的数据进行排序
注意:注意每行数据输入结束条件的判断。/*--------------------------------------功能:对多组数据排序, 每组数据个数不定输入示例:21 4 7 2 52 4 8 9输出示例:1 2 4 5 72 4 8 9----------------------------------------Author: Zhang KaizhouDate...原创 2019-03-17 13:33:28 · 2574 阅读 · 0 评论 -
C语言实现时间转换
注意:注意对闰年以及2月份天数的处理。/*------------------------------------功能:实现时间转换要求输出一个比输入时间晚16小时的时间;数据格式为:年 月 日 时 分;输入示例:32008 03 01 08 302018 01 01 09 302019 12 31 24 30输出示例:2008 02 29 16 302017 12 31...原创 2019-03-17 15:36:38 · 5699 阅读 · 0 评论 -
C语言求解一元二次方程
注意:注意deta的判定条件。/*-----------------------功能:求解一元二次方程无解时输出NAN输入示例:31 2.1 11 -2 11.3 1 1.2输出示例:-0.73 -1.371.00 1.00NAN-------------------------Author: Zhang KaizhouDate: 2019-3-17 16:39:4...原创 2019-03-17 16:38:31 · 3187 阅读 · 0 评论 -
筛选法求解素数问题C语言实现
效率提升的算法基础为:1.一个素数的任意整数倍必为非素数;2.任何一个合数n的最大因数必小于sqrt(n);3.在第二轮非素数筛选时,因为是从所有奇数中按从小到大的顺序筛选素数的,由归纳法不难得知:若i = 3为素数,则因为在第一轮筛序中已经将2的倍数的数排除了,故可直接从j = 3 * 3开始进行非素数的筛选;若i = 5为素数,则因为在前边的筛选中已将2 * 5、3 * 5这两种情况...原创 2019-03-13 17:06:55 · 6164 阅读 · 2 评论 -
C/C++函数指针和函数指针数组的定义及用法
/*-------------------------------------------------------功能:探究函数指针和函数指针数组的定义及用法输入示例:Input 2 numbers & 1 operator(0-max, 1-min, 2-sum): 1 9 2输出示例:10-------------------------------------------...原创 2019-04-03 10:19:45 · 4276 阅读 · 0 评论 -
C语言实现将任意一个整数转换成有限个fibonacci数之和
主要思路:1.首先计算一个包含最大数据范围的fibonacci数表;2.逆序循环遍历数表,对输入整数进行拆解。/*--------------------------------------------------------------------功能:将任意一个整数转换成几个fibonacci数之和可以有多行输入,每行一个整数(本程序范围以10000以内为例),最后以0结束输入;输...原创 2019-03-15 10:36:09 · 769 阅读 · 0 评论 -
C语言实现计算一个句子中单词的个数
关键:本程序的关键在于单词个数应在遇到下一个不为空格的字符,或者遇到字符串结束符’\0’时才能增加1。/*------------------------------------------------------------功能:计算单词的个数描述:对输入的一行可由任意可打印字符组成的字符串中单词的个数,在字符串的任意位置可包含任意个数的空格符,在行尾也可包含任意个数的空格符。输入...原创 2019-03-10 23:17:49 · 6467 阅读 · 0 评论 -
C语言求数字根的问题
求数字根#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXSIZE 5000typedef struct node{ char num[MAXSIZE];原创 2019-03-05 18:34:36 · 4735 阅读 · 0 评论 -
C语言迷宫问题
主要思路:用一个包含坐标和方向的结点数据类型来存储迷宫中的结点;用一个路径栈来实现通路的探测以及路径的回溯;关键:要注意迷宫边界点方向探测的条件限定,否则会产生不可预测的结果。/*-----------------------------------------------功能:迷宫问题,寻找一条简单通路(无重复路径)输出示例:The path from (0, 0) to (...原创 2019-03-08 16:53:00 · 2297 阅读 · 0 评论 -
C语言海伦公式计算三角形面积
关键点:1.注意scanf()函数的输入特点,回车符仍会留在输入缓冲区,故需注意及时清理输入缓冲区内容,避免造成输入逻辑的混乱;2.注意三角形构成条件的判定。/*--------------------------------------------------------------功能:利用海伦公式求三角形面积,若三边无法构成三角形,则面积为0输入示例:31 2 33 4 5...原创 2019-03-08 17:28:29 · 15982 阅读 · 2 评论 -
C语言实现字符串替换
关键点:1.注意字符数组与字符串的区别;在字符数组最后一个字符后面加上’\0’就构成了一个字符串。/*-------------------------------------------------功能:实现字符串的替换描述:第一行输入原字符串,第二行输入要替换字符串,第三行输入新的字符串输入示例:There is an orange, do you want to eat it?...原创 2019-03-08 17:35:48 · 48356 阅读 · 8 评论 -
C语言括号匹配问题
主要思路:/*-------------------------------------------------------功能:可进行括号匹配,输入可包括{}, [], (), 其他任意字符输入示例:3{{{{{{{[[[[[1314]]]]]}}}}}}}{{{{{[[[(())]}}}}}((({{{{{[[521]]}}}}})))输出示例:YesNoYesAuth...原创 2019-03-06 15:27:10 · 11324 阅读 · 0 评论 -
C语言实现图的相关算法
简介:该程序主要是用C语言来实现与图相关的算法,目的在于加深对于图这种数据结构的理解以及探索其应用场景。程序中涉及的有向图如下:/*--------------------------------------------功能:关于图的存储及操作算法:1.根据有向图的邻接矩阵创建该图的邻接表;2.打印有向图的邻接表;3.销毁一个图的邻接表;4.有向图的邻接表的深度优先遍历和广度优先...原创 2019-03-08 20:52:03 · 4120 阅读 · 0 评论 -
C语言基于Dijkstra算法的最短路径问题求解
主要思路:1.用一个二维数组存放带权有向图的邻接矩阵;2.基于Dijkstra算法分别申请三个数组,distance[], path[], used[]分别记录从起点到其余各点的最短距离,到目标结点路径上的前一个结点,到图中某个结点是否已找到最短路径;3.逐渐确定从源点到图中各结点的最短路径,直至结束;附注:1.在shortest_path()函数中存在两个长度为N的for循环,故其时间...原创 2019-03-09 18:26:12 · 4317 阅读 · 0 评论 -
C语言解决六数码问题
问题描述:现有一串由数字1,2, 3, 4, 5, 6随机排列组成的数字串,需判断该数字串在经过有限次α变换和β变换后能否转换成数字串123456。α变换定义为:β变换定义为:主要思路:1.6个数字总共的排列组合状态数为6! = 720种,这些状态可以构成一个有向图,所以可以采用图的遍历算法来求解此问题;2.本程序采用的是有向图的广度优先遍历算法,关键点在于对状态访问的记录以及对新...原创 2019-03-09 19:42:17 · 1028 阅读 · 0 评论 -
C语言求解最后取者输的博弈问题
问题描述:共有n(0<n<100)个物品,A, B轮流从中取得x件(1<x<10);若A有先取的权利,并且首次可选择取0件物品,那么A在首次取多少件才能保证必赢。关键:A要想赢,关键在于将最后一个留给B;去掉最后一个剩余n-1个,而由规则知每个回合二者可取的数目为(1, 10),所以A可在首次取(n - 1) % 10个,并保证在之后的每原创 2019-03-14 11:21:01 · 832 阅读 · 0 评论 -
C语言解决六数码问题,求解最少变换次数
问题描述:关于六数码问题在上一篇文章中已经介绍过,可参考C语言解决六数码问题。改进:本次代码的功能是求解最少的变换次数。因为本程序的核心是基于数码状态所构成的图的广度优先遍历算法设计的,且每次变换的权值都为1,所以首次找到的变换策略即为拥有最少变换次数的方案。故只需在每次状态发生变化时累加1即可记录变换次数信息。/*-------------------------------------...原创 2019-03-09 22:10:50 · 761 阅读 · 0 评论 -
C语言实现以柱状图形式统计字符串中各个大写字母的个数
注意:1.注意取得次数最大值时不要改变原数组中数据的位置关系;2.注意各个字母开始打印的条件判断。/*-----------------------------------------------功能:以柱状图形式统计字符串中各个大写字母的个数输入示例:I AM A CHINESE.I COME FROM CHINA.MY NAME IS ZHANG KAIZHOU.NICE T...原创 2019-03-14 16:11:43 · 1633 阅读 · 0 评论 -
任意长度的十进制数转二进制数C语言实现
主要思路:1.核心思想依然是经典的除2取余法。但是由于C语言中整型数据中能够存放的最大的整数为unsigned long int数据,占4B,能够表示0 ~ 2^32 - 1,约为42亿左右的整数。所以对于那些大整数则无法直接使用除2取余的方法来转换;2.本程序采用逐位除2进位的方法实现转换;3.采用该方法理论上(不考虑计算机硬件存储空间)可实现任意大小的十进制数转二进制数。/*-----...原创 2019-03-10 15:47:18 · 4119 阅读 · 0 评论 -
C语言表达式求解
/*-------------------------------------------------------------------------------------功能:实现表达式的计算,其中可包括+ - * / ()输入示例:31+2+3+4+5+102.2/3+100(56-40)/(4+2)输出示例:res = 25.0res = 100.7res = 2.7...原创 2019-03-05 18:14:09 · 1458 阅读 · 1 评论