C语言
芭乐_0916
喜欢学习的人
展开
-
有向图的强连通分支算法kosaraju(C语言实现)
在有向图G中,如果两个顶点vi,vj间有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的任意两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图(即:一个图的(强)连通子图,并且加入任何一个不在它的点集中的点都会导致它不再(强)连通。),称为强连通分量(strongly connected c原创 2016-12-09 21:47:36 · 3400 阅读 · 0 评论 -
整数划分(C语言实现)
指把一个正整数n写成多个大于等于1且小于等于其本身的整数的和,则其中各加数所构成的集合为n的一个划分。这是一个典型的递归算法。所谓整数划分,是指把一个正整数n写成为其中,为正整数,并且;为n的一个划分。如果中的最大值不超过m,即,则称它属于n的一个m划分。这里我们记n的m划分的个数为转载 2017-05-05 11:04:22 · 6730 阅读 · 3 评论 -
打印魔方阵(C语言)
魔方阵是这样的方阵:它的每一行,每一列和对角线之和均相等。输入n,要求打印由自然数构成的魔方阵(n为奇数)魔方阵中各数排列规律如下:(1)将“1”放在第一行的中间一列;(2)从“2”开始直到n*n为止的各数依次按下列规则存放:每一个数存放的行比前一个数的行数减一,列数同样加1.(3)如果上一个数的列数为1,则下一个数的行数为n(最后一行)(4)当上一个数的列数为n时,下一个原创 2017-04-27 09:07:49 · 11047 阅读 · 3 评论 -
二维数组的“鞍点”(C语言)
找出二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可以没有鞍点),打印出有关信息。C语言实现:#include "stdio.h"void main(){ int a[3][3]={1,2,3,4,5,10,7,8,9}; int i,j,max=0,min=0,x1=0,x2=0; for(i=0;i { max=a[i][原创 2017-04-27 09:17:49 · 2779 阅读 · 0 评论 -
求子串个数(C语言)
在任意输入两个字符串,第二个作为子串,检查第一个字符串中含有几个这样的子串。C语言实现:#include “stdio.h"#include "string.h"#include "stdlib.h"void main(){ char *s1; char *s2; int len1,len2,i=0,j=0,count=0; s1=(char *)mallo原创 2017-04-27 09:22:11 · 7138 阅读 · 0 评论 -
scanf函数使用大全
讲C语言,大多按教材按部就班,以C二级考试为目的,渐渐的,对很多常用函数的理解就停留在了常见的使用形式,未能深入下去。一次做某道题,发现scanf函数使用的细微处,故整理记下,以备查。scanf(格式控制字符串,参数地址列表);格式控制字符串包含4种不同的字符:(1)格式转换说明符%c 以字符形式输入单个字符;%s 输入字符串,以非空字符开始,遇第一个空白字原创 2017-05-29 13:45:55 · 1008 阅读 · 0 评论 -
一元多项式的乘法运算(C语言)实现
[PAT] 一元多项式的乘法与加法运算 C语言实现[PAT] 02-线性结构1 一元多项式的乘法与加法运算设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指转载 2017-09-01 08:59:50 · 17711 阅读 · 1 评论 -
稀疏矩阵的快速转置和乘法运算源代码(非常详细)
/*sparseMatrix.h*/#include "stdio.h"#include "stdlib.h"#define SIZE 100typedef struct{int i,j,val;}Trip;typedef struct{ Trip data[SIZE]; int row,col,num;}SMatrix;void creat原创 2017-11-29 08:20:04 · 2723 阅读 · 1 评论 -
如何在codeblocks中添加graphics.h头文件
Steps to include graphics.h in CodeBlocks:如何在codeblocks中添加源文件graphics.h Step 1: Download WinBGIm from http://winbgim.codecutter.org/ or use this link.第一步:点击网站 http://winbgim.codecutter.org/或者这...转载 2018-08-01 13:43:31 · 16042 阅读 · 11 评论 -
最大子列和的在线打表算法
子列被定义为原连续的一段数字,找出具有列中li最大和的一段连续子列,返回它们的和。一般通常的做法是穷举所有子列和,从中找出最大值。int MaxSubsequence(int List[],int N) /*List[]整数数组,N为数组长度*/{ int i,j; int ThisSum,MaxSum=0; for(i=0;i<N;i++...原创 2018-09-13 09:41:04 · 235 阅读 · 0 评论 -
char *b和char a[]
学生很勤奋,这学期新开的C语言已经自学到指针了。今天发了段代码过来,不知道错在哪里?看了一会,发现这个问题很多学生都会犯,甚至老师也不会注意。所以,整理下,以备查。学生代码如下:#include "stdio.h"void copy_string(char *from, char *to){for (; *from != '\0';* from++,*to++){*原创 2017-03-20 22:12:25 · 1770 阅读 · 0 评论 -
马踏棋盘的实现
马踏棋盘是经典的程序设计问题之一,主要的解决方案有两种:一种是基于深度优先搜索的方法,另一种是基于贪婪算法的方法。第一种基于深度优先搜索的方法是比较常用的算法,深度优先搜索算法也是数据结构中的经典算法之一,主要是采用递归的思想,一级一级的寻找,最后找到合适的解。而基于贪婪的算法则是依据贪婪算法的思想设置一种标准,然后依据标准进行选择,从而得到解,但是他不一定能够得到最优解。 关于马转载 2017-03-10 13:32:50 · 385 阅读 · 0 评论 -
二分图的判定(C语言)
二分图又称为二部图,其定义是:设G=(V,E)是一个无向图。如顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属两个不同的子集。则称图G为二分图。也就是说在二分图中,顶点可以分为两个集合X和Y,每一条边的两个顶点都分别位于X和Y集合中。它满足这样一个特性,即有两顶点集且图中每条边的的两个顶点分别位于两个顶点集中,每个顶点集中没有边相连接!如下图所示:无向图G为二分图原创 2016-12-10 20:46:43 · 3858 阅读 · 0 评论 -
最短路径dijkstra
在一个无权的图中,若从一顶点到另一顶点存在着一条路径,则称该路径长度为该路径上所经过的边的数目,它等于该路径上的顶点数减1。由于从一顶点到另一顶点可能存在着多条路径,每条路径上所经过的边数可能不同,即路径长度不同,我们把路径长度最短(即经过的边数最少)的那条路径叫做最短路径,其路径长度叫做最短路径长度或最短距离。 对于带权的图,考虑路径上各边上的权值,则通常把一条路径上所经原创 2016-12-12 16:29:16 · 448 阅读 · 0 评论 -
最短路径弗洛伊德Floyd(超详细)
图文并茂,超详细版的弗洛伊德算法原创 2016-12-12 17:32:50 · 5093 阅读 · 0 评论 -
基数排序-C语言实现
基数排序(radix sorting)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)的稳定性排序法。基数排序的方式可以采用最低有效位LSD(Least significant digital)或最高有效位MSD(Most significant digital)。LSD的排序方式将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。原创 2016-12-23 10:52:55 · 1361 阅读 · 0 评论 -
计数排序-C语言实现
非常详细的计数排序说明,C语言完全实现,加详细注释原创 2016-12-19 11:10:44 · 6368 阅读 · 1 评论 -
蓝桥杯B组C语言-猜数字
题目:今有7对数字:两个1,两个2,两个3,...两个7,把它们排成一行。要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字。如下就是一个符合要求的排列:17126425374635当然,如果把它倒过来,也是符合要求的。请你找出另一种符合要求的排列法,并且这个排列法是以74开头的。注意:只填写这个14位的整数,不能填写任何多余的原创 2017-02-18 15:11:46 · 516 阅读 · 0 评论 -
如何判断一个数是否是质数(C语言)-超详细
质数是只能被1或者自身整除的自然数(不包括1),称为质数。判断是否是质数最直观和简单的方法就是从2开始直接除,能除尽(余数为0)就不是质数。则C语言实现为:int isprime(int m){ int i; for(i=2;i if(m%i==0) return 0; else return 1;原创 2017-02-13 10:35:50 · 43638 阅读 · 3 评论 -
float,double浮点数的二进制存储方式及转换
float和double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEE R32.24 ,而double 遵从的是R64.53。 无论是单精度还是双精度在存储中都分为三个部分:符号位(Sign) : 0代表正,1代表为负指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储尾数部分(Mantissa):尾数部分其中float的存储转载 2017-03-02 09:56:50 · 6847 阅读 · 2 评论 -
0-1背包问题
动态规划之0-1背包原创 2017-02-01 21:25:00 · 348 阅读 · 0 评论 -
const int * p 和int *const p的区别
声明 int i=5; const int *p; //p所指向的变量值不能被修改。(*p)是const如: p=&i; //p指向i; *p=8; (错误) i的值不能通过指针修改,但注意,i的值本身可以修改,即i=8;是正确的。 const int *p和int const *p是相同的如果声明 int *co...原创 2018-11-22 12:37:14 · 1400 阅读 · 0 评论