查找

二分查找c代码 /* *二分查找 *找到返回下标,否则返回-1 */ int binaryfind(int *arr,int length,int num){ int min = 0; int max = length -1; int i = 0; //判断查找的数是不是第一个或最后一个 i = (num == arr[min])?min:(num ==arr[max])?max:-1; if(i != -1) return i; i = (min+max)/2; whi...
2015-11-09 21:08 | 阅读 1855 次 | 评论 0 条

排序

插入排序代码: /*插入排序*/ void insertionsort(int *arr,int n){ int i,j; for(j = 1;j < n;j++){ int k = arr[j]; i = j-1; while(i >-1 &amp;&amp; arr[i] < k){ arr[i+1] = arr[i]; i--; } arr[i+1] = k; } } /* *归并排序 */ void merge_sort(int *arr,int fi,int la){ if(fi < l...
2015-11-06 23:51 | 阅读 2055 次 | 评论 0 条

C语言中变量定义与声明的区别(转载)

在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下: 变量的声明有两种情况: (1) 一种是需要建立存储空间的(定义、声明)。例如:int a在声明的时候就已经建立了存储空间。 (2) 另一种是不需要建立存储空间的(声明)。例如:extern int a其中变量a是在别的文件中定义的。 前者是"定义性声明(defining declaration)"或者称为"定义(definition)",而后者是"引用性声明(referncing decl...
2015-08-20 20:27 | 阅读 2736 次 | 评论 0 条

内存分配详解、指针与数组[C++][内存管理]

程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 内存分配方式 (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3...
2015-08-14 11:28 | 阅读 3544 次 | 评论 0 条

最大公因数

两个数a、b (a>b) 如果c=a%b>0 则令 a=b,b=c 重复上述步骤直到a%b=0 此时b为所求最大公因数 代码: #include <stdio.h> #include <Windows.h> int main(int argc,char argv[]){ int a,b,c; printf("输入两个数:\n"); scanf("%d",&amp;a); scanf("%d",&amp;b); if(a<b){ c = a; a = b; b = c; ...
2015-08-11 11:21 | 阅读 3228 次 | 评论 0 条

C语言中关于时间的函数

本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概念 在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获...
2015-08-05 15:25 | 阅读 3195 次 | 评论 0 条

奇数阶魔方矩阵

平面魔方的一般定义:将自然数 1 到 N^2, 排列 N 行 N 列的方阵,使每行、每列及两条主对角线上的 N 个数的和都等于N (N^2+1)/2,这样的方阵称为 N 阶幻方。 通过搜索整理后,得到下面的算法: 对平面魔方的构造,分为三种情况:N为奇数、N为4的倍数、N为其它偶数(4n+2的形式) N 为奇数时 (1) 将1放在第一行中间一列; (2) 从2开始直到n×n止各数依次按下列规则存放: 按 45°方向行走,如向右上 每一个数存放的行比前一个数的行数减1,列数加1...
2015-08-05 14:10 | 阅读 6201 次 | 评论 0 条

C语言中将二维数组作为参数传递给函数的方法

转自:http://www.cnblogs.com/applebunny/archive/2012/09/09/2677307.html #include <stdio.h> /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维的长度 * *********************************/ void print_a(int a[][5], int n, int m) { int i, j; for(i = 0; i < n; i+...
2015-08-03 17:07 | 阅读 2418 次 | 评论 1 条

汉诺塔代码

#include <stdio.h> int i=0; void move(int n,char a,char b,char c){ if(n == 1){ printf("1:a--c\n"); i++; return; } move(n-1,a,c,b); printf("%d:%c--%c\n",n,a,c); move(n-1,b,a,c); i++; } int main(int argc,char* argv[]){ int n = 64; move(n,'A','B','C'); printf("...
2015-07-30 16:43 | 阅读 1783 次 | 评论 0 条

c语言scanf函数测试

ASCII码排序 描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。 输入 第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。 输出 对于每组输入数据,输出一行,字符中间用一个空格分开。 #include <stdlib.h> #include <stdio.h> #include <malloc.h> int main(void){ int num=0,i,tmp; cha...
2015-07-01 16:43 | 阅读 1598 次 | 评论 0 条

判断输入的中文是不是回文

没用字符串函数,采用递归 #include <stdio.h> #include <string.h> #include <windows.h> /** *判断输入的字符或中文字符是不是回文,如:你是谁是你,你是谁谁是你,abccba,abcba,a你好好你a *@str:字符数组 *@i:数组下标 *@flag:返回判断,为1是回文,为0不是 *@n:字符总字节数 */ void checkcn(char* str,int i,int* flag,int n); /*主函数*/ int main(void){ char str[100...
2015-05-28 15:01 | 阅读 2723 次 | 评论 0 条

小球与任意直线碰撞

ege库的小源码,小球随机运动与画的任意直线碰撞后反弹,程序运行需导入ege库 ege库下载地址:http://down.bccn.net/7190.html 将graphics.h、ege.h、相关开发工具对应的lib文件与源码放入同一目录即可 代码: #include <graphics.h> #include <iostream> #include <vector> #include <cstdlib> #include <cmath> #define SCREEN_WIDTH 800 #define SCREEN_H...
2015-05-27 14:12 | 阅读 2756 次 | 评论 0 条
浏览52922次