随笔分类 - c/c++
记录着学习所学的c/c++
摘要:求两个数的最大公约数的方法很多,如下面的递归法:int gcd(int n, int m){ if (n<m) { n=m+n; m=n-m; n=n-m; } if (m==0) return n; return gcd(m,n%m);}下面我使用数组写了个计算n个数的最大公约数的代码:int max_common_divisor(int several[], int n){ int a=several[0]; int b=several[1]; int c=gcd(a,b); int i; for (i=2; i<n; i++) { c=gcd(c,several[i]); }
阅读全文
摘要:程序1:已知y=2*x^2 - 3*x^4 + 6*x^5 - 4*x + 50,求x=0 到 x=2 以步长为0.2递增时y的最小值和最大值。知识点:pow(计算次方值)相关函数 exp,log,log10表头文件 #include<math.h>定义函数 double pow(double x,double y);函数说明 pow()用来计算以x为底的y次方值,即xy值,然后将结果返回。返回值 返回x的y次方计算结果。错误代码 EDOM 参数x为负数且参数y不是整数。附加说明 使用GCC编译时请加入-lm。代码://程序1;#include <stdio.h>#in
阅读全文
摘要:【声明】本博客内容可以随意转载,但请您注明出处:http://www.cnblogs.com/hanxi/代码可能有很多不足之处或有错误,还望各路朋友们指点指点。1.计算一个字符串在另一个字符串中出现的次数程序思想:调用find函数查找子串,找到一个就记录一次,并接着往下找,直到找不到为止。/*函数作用:用来计算一个字符串在另一个字符串中出现的次数*/#include <string>using std::string; int count_str(string maxstr, string minstr){ int count = 0; int i = 0; while ((i
阅读全文
摘要:唉!说来就惭愧啊!几星期前我就开始使用win32写着个程序,但是到了中途碰到了许多钉子。以前我写了几篇博客记录以前写的代码,但是那是不成功的代码。今天我把扫雷游戏的基本过程实现了,下面一一介绍:
阅读全文
摘要:#include <stdlib.h>#include <iostream>using namespace std; int GetAddressMessage();//获取公交地址消息 void SetAddress();//设置公交地址 void Output();//输出公交地点 void SetMessage(int busmessge); int NumBusAddress;//公交地点编号:1/2/3/4/5/6/7/8/9 char * c_BusAddress;//地点名//报站类的实现int GetAddressMessage(){ return Nu
阅读全文
摘要:完数时间限制: 1秒 内存限制: 32768 KB的从文章的数量在1994年微软在Encarta理论:如果“,b,c是这样,一个=年,一个被称为B的一个或多个C和B或C或因素称为除数整数答如果c是不是1/-1,B称为A的偶数,其中包括0,适当除数是2的倍数,例如,-4,0,2,10;一个奇数是一个整数,是甚至没有,例如,-5,1,3,9一个完全数是一个正整数,等于其所有积极的,正确的约数的总和;。例如,6,等于1 + 2 + 3, 28,等于1 + 2 + 4 + 7 + 14,是完美的数字。正数,它是不完善,不健全或有缺陷,按是否丰富,其积极,正确的约数之和小于或大于的数字为多。本身这样,9
阅读全文
摘要:题目描述: 给定一个正整数n,要求输出对应的二进制数中所有数码‘1’的位置。注意最低位为第0位。例如13的二进制形式为1101,因此数码1的位置为:0,2,3.输入描述: 输入文件中的第一行为一个正整数d,表示输入文件中测试数据的个数,1<=d<=10,接下来有d个测试数据。每个测试数据占一行整数n,1<=n<=10^6.输出描述: 输出包括d行,即输入文件中的每个测试数据,输出一行。第i行,1<=i<=d,以升序的顺序输出第i个测试数据中的整数的二进制形式中所有数码1的位置,位置之间有一个空格,最后一个位置后面没有空格。样例输入: 2 13 127样例输出
阅读全文
摘要:windows程序设计API:创建窗口:CreateWindow()函数功能:该函数创建一个重叠式窗口、弹出式窗口或子窗口。它指定窗口类,窗口标题,窗口风格,以及窗口的初始位置及大小(可选的)。该函数也指定该窗口的父窗口或所属窗口(如果存在的话),及窗口的菜单。若要使用除CreateWindow函数支持的风格外的扩展风格,则使用CreateWindowEx函数代替CreateWindow函数。函数原型:HWND CreateWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName,DWORD dwStyle,int x,int y,int nWidth,i
阅读全文
摘要:求解:单击鼠标左键为什么不能再格子里画东西?
阅读全文
摘要:扫雷游戏(纯C实现)(二)
原函数见:http://www.cnblogs.com/hanxi/archive/2011/03/27/1997182.html
优化后的
算法函数接口:
1.返回周围地雷个数的函数
阅读全文
摘要:扫雷游戏(纯C实现)
预定义:
#define MAX_X 100 //行坐标最大值
#define MAX_Y 100 //纵坐标最大值
全局数组:
char map[MAX_X][MAX_Y];
//为坐标数组,存储着地雷的分布
int m,n;
//为坐标的大小(选择等级时用的上)
//注意:MAX_X,MAX_Y与m,n的不同之处
阅读全文
摘要://特殊的四位数//输出所有四位数(十进制)中具有如下属性的数://四位数字之和等于其十六进制形式各位数字之和,也等于七十二进制形式的各位数字之和#include <stdio.h>int main(){ int num, tmp; for (num = 1000; num <= 9999; num++) { int s16 = 0, s12 = 0, s10 = 0;//num的各种进制之和 tmp =num; while (tmp)//等效于while(tmp != 0) { s16 += tmp %16; tmp /= 16; } tmp = num; while (t
阅读全文
摘要:View Code #include <stdio.h>#include <string.h>int main(){ int m, n; int k = 0; int ticket[10001]; while (scanf("%d %d", &m, &n)) { int i = 1; if (!m && !n) { break; } memset(ticket, 0, sizeof(ticket)); int tmp; for (i = 1; i <= n; i++) { scanf("%d"
阅读全文
摘要:int with= GetSystemMetrics(SM_CXFULLSCREEN); int heigh= GetSystemMetrics(SM_CYFULLSCREEN);通过上边两个函数获取的是显示屏幕的大小,及不包括任务栏等区域。 int cx = GetSystemMetrics( SM_CXSCREEN ); int cy = GetSystemMetrics( SM_CYSCREEN );这两个函数获取的是真正屏幕的大小。用前两个函数获取的大小可能是1024*687 而用下边两个获取的就是1024*768GetWindowRect用法:GetWindowRect(HWND,.
阅读全文
摘要:汉诺塔 - 解决思路1.如果只有一个金片,则把该金片从源移动到目标棒,结束。2.如果有n个金片,则把前n-1个金片移动到辅助的棒,然后把自己移动到目标棒,最后再把前n-1个移动到目标棒//Tower of Hanoi 汉诺塔#include <stdio.h>void TOH(int n, char A, char B, char C){ if (n == 1) { printf("Movedisk %d from %c to %c \n",n,A,C); return; } TOH(n-1, A, C, B); printf("Movedisk %d
阅读全文
摘要:产生随机的排列: permute()函数的功能是:打乱数组的顺序 Random()函数的功能是:产生一个0 —> n-1的随机数 swap()函数的功能是:交换数组里第i个和第j个元素的值//功能:产生随机的排列#include <stdio.h>#include<stdlib.h>//声明函数void permute(int array[], int n);int Random(int n);void swap(int A[], int i, int j);//Randomly permute the n values of arrayvoid permute(
阅读全文
摘要:[互动百科]:递归算法 - 概述递归做为一种算法在程序设计语言中广泛应用.是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现像.程序调用自身的编程技巧称为递归( recursion)。一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。用递归思想写出的程序往往十分简洁易懂。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当
阅读全文