C/C++
zz198808
这个作者很懒,什么都没留下…
展开
-
按位异或运算符^
参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例如:10100001^00010001=101100000^0=0,0^1=1 0异或任何数=任何数1^0=1,1^1=0 1异或任何数-任何数取反任何数异或自己=把自己置0(1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3原创 2012-04-23 20:06:19 · 773 阅读 · 0 评论 -
洗牌算法
首先看下如何生成1——10之间的随机数// xipai.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;#define N 54int main(void) { int poker[N + 1]原创 2012-09-02 11:24:57 · 948 阅读 · 0 评论 -
链表排序总结
其实就是相当于选择排序算法:还是直接看代码吧:// LinkSort2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;struct Node{ int data; struct Node* next;};Node* createLink(int a[],in原创 2012-07-24 22:59:45 · 1185 阅读 · 1 评论 -
华为机试题(2)
1、选秀节目打分,分为专家评委和大众评委,score[]数组里面存储每个评委打的分数,judge_type[]里存储与 score[]数组对应的评委类别,judge_type[i] == 1,表示专家评委,judge_type[i] == 2,表示大众评委,n表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 =专家评委平均分 * 0.6 +原创 2012-07-26 22:54:05 · 2286 阅读 · 2 评论 -
C++中使用Vector
vector是c++里面的类模板,首先说下它所需要的头文件#includevector 中增加元素的方法是vector.push_back(i);,获得迭代器的方法是:vector::iterator iter;还是来看下例子吧:// vectorTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #includ原创 2012-07-13 20:37:01 · 520 阅读 · 0 评论 -
10进制转换16进制C代码实现
其实这个题目可以用严蔚敏数据结构书上讲的栈实现 #include#define N 8#define k 16void tran(int num) { int arr[N],i; for (i=0;i <N;i++) { arr[i]=num%k; num=num/k; if (n原创 2012-04-21 21:19:47 · 10030 阅读 · 0 评论 -
结构体对齐那点事
这里我引入结构体对齐的概念,也可以说是内存对齐了。为什么要内存对齐呢,就是方便CPU寻址了,具体原因大家要参考计算机体系结构了。先看一个内存对齐的例子: struct example1{ char a; double b; long l;}; struct example2{原创 2012-04-23 21:21:26 · 543 阅读 · 0 评论 -
用位运算实现四则运算之加减乘除 .
// AddWithoutArithmetic.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;int AddWithoutArithmetic(int num1,int num2){ if(num2==0) return num1;//没有进位的时候完成运算 i原创 2012-04-23 20:20:40 · 1593 阅读 · 0 评论 -
实现字符串逆序输出
#include "stdio.h"#include void main() { char *p,a[200],b[200]; int i,m; p=a;printf("Enter a String!\n");gets(a);m=strlen(a);p=p+m-1;for(i=0;i<m;i++){ b[i]=*(p--); }原创 2012-04-21 13:57:59 · 1041 阅读 · 0 评论 -
你知道为什么计算机中的数据使用补码来表示和运算吗? .
总所周知,计算机内部的所有数都是以二进制的形式存在的。而二进制在计算机里又有多种编码方式——原码、反码、补码等。而在这些编码方式里面用得最多的不是最简单、最直接的原码而是补码。这是为什么呢?想搞懂这个问题首先得明白什么是原码、反码以及补码,如果你对他们还不太了解,那就先看看我另一篇博客——原码、反码、补码其实很简单。如果你对他们已经很熟悉,那么我们继续往下看。A、B、C三种相似的东西,原创 2012-04-19 17:57:55 · 793 阅读 · 0 评论 -
一道牛公司C语言的面试题
int main(){if(){ printf("Hello ");}else{printf("World !!!");}return 0;}在if里面请写入语句 使得打印出 hello world。答案:#includemain(){ if(!printf("hello ")) { printf("Hel原创 2012-04-17 18:26:33 · 1028 阅读 · 0 评论 -
从今天开始重写搞起C/C++,因为我要找工作参加笔试 2012/4/17
从今天开始重写搞起C/C++,因为我要找工作参加笔试 2012/4/17原创 2012-04-17 19:19:54 · 977 阅读 · 0 评论 -
不用中间变量实现交换
方法(一) public static void main(String[] args) { int a=3,b=7; a=a+b; b=a-b;//because a=a+b then b=a+b-b=a a=a-b;//because a=a+b then a=a+b-a=a System.out.println(a+"--"+b); } 但是这样原创 2012-03-24 13:56:18 · 628 阅读 · 0 评论 -
使用位图法判断整形数组是否存在重复
腾讯面试题:使用位图法判断整形数组是否存在重复腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中网友提供思路:位图法使用位图法判断整形数组是否存在重复判断集合中存在重复是常见编程任务之一,当集合中数据量比较大时我们通常希望少进行几次扫描,这时双重循环法就不可取了。位图法比较适合于这种情况原创 2012-09-28 21:44:41 · 1997 阅读 · 4 评论