
C
IceFire
这个作者很懒,什么都没留下…
展开
-
柔性数组
也许你从来都没有听说过柔性数组(flexible array)这个概念,其实以前我也没有听说过,今天在看书时刚刚看到的。 C99,结构体中允许最后一个成员是未知大小的数组,这就叫柔性数组成员。但是结构体的柔性数组成员前面至少有一个其他成员。柔性数组成员允许包含一个可变大小的数组。sizeof返回的结构体大小中不包含这个柔性数组的大小。包含柔性数组的结构体用malloc()函数分配内存的时候,原创 2013-03-31 10:42:09 · 482 阅读 · 0 评论 -
C小陷阱 (1)
大家首先来看下面这么一段代码。 #include #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0])) int array[] = {23,34,12,17,204,99,16}; int main() { int d; for(d=-1;d <= (TOTAL_ELEMENT原创 2013-03-18 17:48:25 · 565 阅读 · 0 评论 -
C Puzzles - NO.2
#include int main() { int i; i = 1,2,3; printf("i:%d\n",i); return 0; } 你认为输出是什么呢? i:3 是吗? 其实,运行结果是i:1 (编译器VC6.0) 这是因为,大部分的编译器都是从右向左赋值的,因此,int=1,2,3;对编译器来说,即为:这三条语句,i=3;i=2;i=1; 而原创 2013-03-20 13:20:21 · 561 阅读 · 0 评论 -
C Puzzles - NO.3
首先来看下面这段代码。 #include int main() { char dummy[80]; printf("Enter a string:\n"); scanf("%[^a]",dummy); printf("%s\n",dummy); return 0; } 当你输入 "Life is b原创 2013-03-20 17:06:43 · 440 阅读 · 0 评论 -
排序大集合
#include #include #include #define N 10000 /*直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录, 按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。 1.初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1 2.将a[i]并原创 2013-06-14 23:06:42 · 549 阅读 · 0 评论 -
Catalan数
什么是Catalan数 说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式是我们从中取出的就叫做第n个Catalan数,前几个Catalan数是:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670,原创 2013-08-13 23:00:06 · 518 阅读 · 0 评论 -
欧拉函数求法
neuler(m) 是从1,到m与m互质的数字的个数 n定理 long long euler(long long n) { long long i,m=(int)sqrt(n+0.5),ans=n; for(int i=2;i { if(n%i==0)ans=ans/i*(i-1); while(n%i==0)n/=i; } if(n)ans=ans/n*(原创 2013-08-14 08:48:42 · 572 阅读 · 0 评论