求最大公约数的递归方法(写给和我一样的初学者)

学习程序有一些经典的求解算法我们必须得掌握, 像本例——求两个非0自然数的最大公约数——是学习C语言时必要理解的。 为解决它,通常的函数编写是这样的: int fun(int a,int b){ int tmp; if(a<b) { tmp=a; a=b; b=tmp; } while(b!=0) { tmp=a; a=b; b=tmp%b; } return a; } 这里给出一个解决上述问题的递归函数—— int fun(int a,int b){ int temp; if(a<b) { temp=a; a=b; b=temp; } if(b==0) r...
Cyuyan | 2011-03-29 21:38 | 阅读 2406 次 | 评论 11 条

一道C语言二级填空题:你有把握做对吗?(不看后悔)

今天去参加二级考试,其中有一道填空题出得挺好,写在这里与大家分享, 若不吝赐教,路人可以留下言语 题目大意如下 ::对于程序(注意0的ASCII码是48) #include<stdio.h>int main(){ char c1,c2; scanf("%c",&amp;c1); c2=c1+9; printf("%c%c\n",c1,c2); return 0;} 若输入48,则输出为:—— 我好多同学都填了09,你认为呢?做做看。
Cyuyan | 2011-03-26 21:58 | 阅读 2407 次 | 评论 27 条

有趣的冒泡排序

想必大家都学过冒泡排序,假如给一个数组A,他有N个元素, 如果要求对他从小到大排列,则冒泡排序的函数可以这样写: void sort1(int *A,int N){ int i,j,tmp; for(i=0;i<N-1;i++) for(j=0;j+1<N-i;j++) if(a[j]>a[j+1]) { tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; }} 其实冒泡排序还有一种形式,在这里与大家分享一下。 void sort2(int *A,int N){ int i,j,tmp; for(i=0;i<N;i++) ...
默认分类 | 2011-03-24 12:54 | 阅读 981 次 | 评论 2 条

源码阅读:排序及其他

/*请编写程序, 该程序的功能是:对于一维整型数组,输入数组元素, 并删去数组中所有相同的数,使各个元素均不相同。思路:把数组中元素按顺序排列(如从小到大),然后进行操作。*/#include<iostream>#define num 6using namespace std; void sort(int a[],int n); int fun(int a[],int n); int main(){ int i,n,a[num]; for(i=0;i<num;i++) cin>>a[i]; cout<<endl<<"************"<<endl; sort(a,num); ...
默认分类 | 2011-03-24 12:32 | 阅读 916 次 | 评论 0 条

对数据转换和数据读取的认识

如果您能通过计算得出下面程序的输出结果,那就说明: 1,您对ascii码有了不错的掌握; 2,您对数据在内存中的存储形式以及进制转换理解地很好; 3,您被计算机化了~\(≧▽≦)/~啦啦啦 程序如下: #include <stdio.h>int main(int argc, char *argv[]){ char a=0xddff; printf("%d\n",a); char b='A'+'32'; //注意辨别 printf("%d %c",b,b); return 0;} 生有涯而思无涯……
默认分类 | 2011-03-10 12:39 | 阅读 1115 次 | 评论 15 条

C函数源代码阅读

下面的程序是计算出一个十进制数的二进制位中有多少个1: #include <stdio.h>#include <stdlib.h>int func (int x){ int countx = 0; while ( x ) { countx ++; x = x&amp;(x-1); //注意这里 } return countx;}int main(int argc, char *argv[]){ int a; scanf("%d",&amp;a); printf("%d\n",func(a)); system("pause"); ...
默认分类 | 2011-03-07 13:04 | 阅读 1975 次 | 评论 16 条

验证自然对界(natural align)

自然对界 struct 是一种复合数据类型,其构成元素既可以是基本数据类型(如 int、long、float 等)的变量,也可以是一些复合数据类型(如 array、struct、union 等)的数据单元。对于结构体,编译器会自动进行成员变量的对齐,以提高运算效率。缺省情况下,编译器为结构体的每个成员按其自然对界(natural alignment)条件分配空间。 各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。 自然对界(natural alignment)即默认对齐方式,是指按结构体的成员中size 最大的成员对齐。 例如: struct...
Cyuyan | 2011-03-04 12:36 | 阅读 1267 次 | 评论 6 条
浏览70862次
最新评论