代码改变世界

c语言数组初始化问题

2013-08-04 00:25 by youxin, 5894 阅读, 1 推荐, 收藏,
摘要:2147483648字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。charstr[10]={'I','','a','m','',‘h’,'a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0')。如char str[10] = {'\ 阅读全文

c语言实现atoi和itoa函数。

2013-08-04 00:04 by youxin, 3380 阅读, 0 推荐, 收藏,
摘要:首先看atoi函数:C语言库函数名: atoi功 能: 把字符串转换成整型数。名字来源:ASCII to integer 的缩写。原型: int atoi(const char *nptr);函数说明: 参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字... 阅读全文

不使用临时变量交换两个整数

2013-08-03 22:33 by youxin, 1310 阅读, 1 推荐, 收藏,
摘要:最普通的方法用临时变量的方法就不说了,下面的没有用临时变量:int main(){ int a,b; while(scanf("%d%d",&a,&b)!=EOF) { a=a+b; b=a-b; a=a-b; printf("%d\t%d\n",a,b); } }有些人说当a,b比较大时会溢出产生错误的结果。其实不正确,溢出虽然会溢出,但是结果任然正确。为什么?我们假设a,b都是short int(int类似)。a 0x7fff 32767(2^15-1,有符号整形所能表示的最大范围)。b... 阅读全文

hdu 1282回文数猜想

2013-08-03 17:18 by youxin, 512 阅读, 0 推荐, 收藏,
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1282Problem Description一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数。任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止。例如:68变成154(68+86),再变成605(154+451),最后变成1111(605+506),而1111是回文数。于是有数学家提出一个猜想:不论开始是什么正整数,在经过有限次正序数和倒序数相加的步骤后,都会得到一个回文数。至今为止还不知道这个猜想是 阅读全文

容斥原理及应用

2013-08-03 16:52 by youxin, 778 阅读, 0 推荐, 收藏,
摘要:在计数时,必须注意无一重复,无一遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。两个集合的容斥关系公式:A∪B = A+B - A∩B (∩:重合的部分)三个集合的容斥关系公式:A∪B∪C = A+B+C - A∩B - B∩C - C∩A +A∩B∩C在1到1000的自然数中,能被3或5整除的数共有多少个?不能被3或5整除的数共有多少个?分析:显然,这是一个重复计数问题(当然,如果不怕麻烦你可以分 阅读全文

求回文数算法

2013-08-03 16:10 by youxin, 8024 阅读, 2 推荐, 收藏,
摘要:问题: 求第N个回文数palindrome。 一个正数如果顺着和反过来都是一样的(如13431,反过来也是13431),就称为回文数。约束: 回文数不能以0开头。 回文数从1开始。首先我们要写一个算法求回文数。刚开始我想到用用字符串来存储数,然后判断原序和逆序是否相等。void func1(char a[]){ printf("%d",strlen(a)); char *p=a; char *q=a+strlen(a)-1; bool flag=true; while(q>p) { if(*q!=*... 阅读全文

转:c语言EOF是什么?(及getchar()和putchar用法)

2013-08-03 13:50 by youxin, 8503 阅读, 0 推荐, 收藏,
摘要:我学习C语言的时候,遇到的一个问题就是EOF。它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。 int c; while ((c = fgetc(fp)) != EOF) { putchar (c); }很自然地,我就以为,每个文件的结尾处,有一个叫做EOF的特殊字符,读取到这个字符,操作系统就认为文件结束了。但是,后来我发现,EOF不是特殊字符,而是一个定义在头文件stdio.h的常量 阅读全文

printf格式控制详解

2013-08-03 12:03 by youxin, 2377 阅读, 0 推荐, 收藏,
摘要:format 参数输出的格式,定义格式为%[flags][width][.precision][length]specifierspecifier在最后面。定义了数据类型。Where thespecifier characterat the end is the most significant component, since it defines the type and the interpretation of its corresponding argument:specifierOutputExampledoriSigned decimal integer392uUnsigned 阅读全文

c 中关于int,unsigned int , short 各种类型总结

2013-08-03 00:52 by youxin, 14696 阅读, 0 推荐, 收藏,
摘要:int类型比较特殊,具体的字节数同机器字长和编译器有关。如果要保证移植性,尽量用__int16 __int32 __int64吧__int16、__int32这种数据类型在所有平台下都分配相同的字节。所以在移植上不存在问题。所谓的不可移植是指:在一个平台上编写的代码无法拿到另一个平台上运行时,不能达... 阅读全文

判断无符号整数的二进制形式中是否包含偶数个1

2013-08-03 00:46 by youxin, 883 阅读, 0 推荐, 收藏,
摘要:题目要求:若二进制无符号整数x包含偶数个1,返回1,否则返回0.要求:只能使用位运算、加减法和==、!=,最多包含12个算术运算、位运算和逻辑运算,可以假设sizeof(unsigned)==4不能使用乘除模运算,不能使用条件分支,循环,函数调用,大小比较等(详见《深入理解计算机系统》第二章习题)首先,最朴素最直接的方法——一位一位统计肯定次数远远多于12次.考虑:异或运算(^)可以保持两个操作数1的个数的奇偶性.因为两个操作数,一1一0,结果为1,1的个数还是奇数;两0,结果为0,不影响,两1,结果为0,1的个数还是偶数.这样,想到了降量的思想,把判断32位数转化为16位,然后依次进行.先开 阅读全文
上一页 1 ··· 147 148 149 150 151 152 153 154 155 ··· 269 下一页