![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 58
xlh006
这个作者很懒,什么都没留下…
展开
-
有n只蚂蚁在一根木棍上,蚂蚁们只知道距左端的距离,棍子的长度,但不知道他们的朝向,蚂蚁们走到端点的时候会落下木棍,求所有蚂蚁们走过的最短和最长路程。
本题目看似很难,其实很简单,就下几行代码。自己模拟一下过程就可以发现可以将蚂蚁间走过的路程互相补在一起的话。若有n只蚂蚁。Sn = n只蚂蚁走过的路程总和; an = 棍子长度 - 此蚂蚁距某端的最短距离;Sn = an的前n项求和 在代码中 int x[n]; 之所以可以编译的原因是在之上有 int n,length; scanf("%d%d",&a...原创 2018-07-23 14:41:09 · 2335 阅读 · 0 评论 -
选择法排序,又称为冒泡排序
在一个未知元素个数的数组里面放入无序的数,再将它有序排列比如说这个 int initial_array[] = {10,4,6,3,2,1,5,7,9,8};这里的数组内元素的个数统计算法为 num_initial_array = sizeof(initial_array) / sizeof(initial_array[0]); //这里的 sizeof(i...原创 2018-07-22 18:19:02 · 552 阅读 · 0 评论 -
有n跟棍子,棍子i的长度为ai。想要从中选出3跟棍子组成周长尽可能长的三角形。请输出最大的周长,若无法输出三角形则输出0. //本题目是针对于数组内棍子的长度为小到大的排列
例如:n = 5 ;a = {2,3,4,5,10}输出: 12 (选择3,4,5时) #include <stdio.h>#include <stdlib.h>int main(){ int n; int i,j,k; //循环参数 int temp; int longest; ...原创 2018-07-23 03:29:43 · 1950 阅读 · 0 评论 -
void 这是针对C语言C语言C语言
void,无类型1、函数参数为空,定义函数时,可以用void修饰:int fun(void)2、函数没有返回值:void fun(void)3、不能定义void类型的普通变量:void a;//err无法确定类型,不同类型分配空间不一样4、可以定义void *p; //ok 32位永远是4个字节,64位永远是8个字节5、数据类型本质:固定内存大小别名6、void *p万能指针,函数返回...原创 2018-08-09 15:46:23 · 1201 阅读 · 0 评论 -
程序内存四区
分内存四区是为了更好的管理,提高效率在C语言程序中:代码在内存中进行执行的时候,我们粗略的将程序所占用的内存分为四个区域—-栈区,堆区,全局区,代码区,每个程序都有唯一的四个内存区域.我们需要熟悉和了解各个区域的特性,例如存储什么类型的数据, 有谁去申请开辟, 又有谁去管理释放等等根据是局部变量,全局变量, 常量还是通过malloc等类似的函数分配内存空间, 把他们放到对应的内存区中.这样...原创 2018-08-09 19:38:37 · 4085 阅读 · 2 评论 -
归并排序
首先,我们先了解一下怎么将两个有序数组合并?对于int arr1[] = {2,6,8,9}; int arr2[] = {1,3,4,7};算法实现://将有序数组a[]和b[]合并到c[]中 void MemeryArray(int a[], int n, int b[], int m, int c[]) { int i, j, k; ...原创 2018-10-09 12:14:07 · 132 阅读 · 0 评论 -
归并排序
首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。//将有序数组a[]和b[]合并到c[]中 void MemeryArray(int a[], int n, int b[], int m, int c[]) { int i...原创 2018-09-03 17:50:46 · 127 阅读 · 0 评论