二分查找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...
插入排序代码:
/*插入排序*/
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 && 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...
在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:
变量的声明有两种情况:
(1) 一种是需要建立存储空间的(定义、声明)。例如:int a在声明的时候就已经建立了存储空间。
(2) 另一种是不需要建立存储空间的(声明)。例如:extern int a其中变量a是在别的文件中定义的。
前者是"定义性声明(defining declaration)"或者称为"定义(definition)",而后者是"引用性声明(referncing decl...
程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。
内存分配方式
(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。
(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
(3...
两个数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",&a);
scanf("%d",&b);
if(a<b){
c = a;
a = b;
b = c;
...
本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。
关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)
1.概念
在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获...
平面魔方的一般定义:将自然数 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...
转自: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+...
#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("...
ASCII码排序
描述
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
int main(void){
int num=0,i,tmp;
cha...
没用字符串函数,采用递归
#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...
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...