C语言源程序 .pdf
《C语言源程序 .pdf》由会员分享,可在线阅读,更多相关《C语言源程序 .pdf(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/*添加某一元素*/ #include int main() int a10,k,i,j; printf(请输入一组有序数组开始排序:); for(i=0;i9;i+) scanf(%d,&ai); printf(Please intput array:); scanf(%d,&k); for(i=0;ik) for(j=9;ji;j-) aj=aj-1; ai=k; break; if(i9) ai=k; printf(新插入的数字排列后为:); for(i=0;i=9;i+) printf(a%d=%d.,i,ai); return 0; /*删除有序数组某一元素*/ #include i
2、nt main() int a10=0,1,2,3,4,5,6,7,8,9,i,j,k; printf(请输入要删除的数子:); scanf(%d,&k); for(i=0;i=9;i+) if(ai=k) for(j=i;j9;j+) aj=aj+1; break; if(i=10) printf(无此数子 .n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 49 页 - - - - - - - - - return 0; printf(删除后的数子为:); fo
3、r(i=0;i=9;i+) printf(a%d=%d.,i,ai); return 0; /*冒泡法 */ #include int main() int a10,j,i,k; printf(Please input:); for(i=0;i=9;i+) scanf(%d,&ai); for(i=0;ii;j-) if(ajaj-1) k=aj; aj=aj-1; aj-1=k; printf(排列好的一组数子:); for(i=0;i=9;i+) printf(a%d=%d.,i,ai); return 0; /*选择法 */ #include int main() int a10,i,j
4、,k,t; printf(Please input:); for(i=0;i=9;i+) scanf(%d,&ai); for(i=0;ii;j-) if(ajak) k=j; t=ai; ai=ak; ak=t; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 49 页 - - - - - - - - - printf(它们是 :); for(i=0;i=9;i+) printf(a%d=%d.,i,ai); return 0; /*双向冒泡法 */ #includes
5、tdio.h #define N 10 main(void) int aN; int i,j,n,t; printf(请输入 10 个数 :); for(i=0;i=9;i+) scanf(%d,&ai); for(n=1;n=N/2;n+) for(i=n-1;iai-1) t=ai; ai=ai-1; ai-1=t; for(j=N-n-1;jn-1;j-) if(ajaj-1) t=aj; aj=aj-1; aj-1=t; printf(它们是 :); for(i=0;i=9;i+) printf(a%d=%d.,i,ai); return 0; /*指针冒泡法 */ #include
6、void sort(int *x,int y); int main(void) int a=3,1,4,5,9,7,8,6,2,0,i; sort(a,10); for(i=0;i=9;i+) printf(a%d=%d. ,i,ai); return 0; void sort(int *x,int y) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 49 页 - - - - - - - - - int i,t,*j; for(i=1;ix+i-1;j-) if(*(j
7、-1)*j) t=*j; *j=*(j-1); *(j-1)=t; /*/ 计算 4 字节整数的2 进制形式1bit的个数 , 如 oneBits(2)=1;oneBits(3)=2 int oneBits(int i) i = i - (i 1) & 0 x55555555); i = (i & 0 x33333333) + (i 2) & 0 x33333333); i = (i + (i 4) & 0 x0f0f0f0f; i = i + (i 8); i = i + (i 16); i &= 0 x3f; return i; /*判断空格和字符数量*/ #include int get
8、(int *x,int *y); int main(void) int x,y; if(get(&x,&y) printf(空格 :%d 个 , 小写字符 : %d 个n,x,y); else printf(非法文件 n); return 0; int get(int *x,int *y) int t; *x=*y=0; while(t=getchar()!=EOF) switch(t) case : case t: (*x)+;break; case n:return 1; default:if(t=a&t=z) (*y)+; 名师资料总结 - - -精品资料欢迎下载 - - - - - -
9、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 49 页 - - - - - - - - - return 0; /*strrev倒置算法 */ #include #include void strrev(char a); int main(void) char a60; int i; gets(a); strrev1(a); printf(%sn,a); return 0; void strrev(char a) int i,j,n; char ch; n=strlen(a); for(i=0,j=n-1;ij;i+,j-) ch=
10、ai; ai=aj; aj=ch; /* 删除一串字符中的一个后并输出*/ #include #include int main() int i,m,j,n; int a10=1,2,3,4,5,6,7,8,9; coutthis number will be passed that you printf m; /输入将要被删除的数. for(i=0;iai) /判断输入的数是否太大. coutthis number is wrong.; return 0; /结束这个数字 , 重新开始 . if(ai=m) for(j=i;j=8;j+) aj=aj+1; 名师资料总结 - - -精品资料欢
11、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 49 页 - - - - - - - - - ; for(n=0;n=8;n+) coutan; ; return 0; /*自编 strcpy库函数 */ #include void strcopy(char *str1,char *str2); int main(void) char *str1,*str2; printf(Please intput str1 and str2:); scanf(%s%s,str1,str2); strcopy(str1
12、,str2); printf(%sn%sn,str1,str2); return 0; void strcopy(char *str1,char *str2) while(*str1+=*str2+)!=0); /*自编库函数strlen*/ #include int strlen1(char *str); int main(void) int n=0; char *str1; printf(Please input string:); scanf(%s,str1); n=strlen1(str1); printf(%dn,n); return 0; int strlen1(char *str
13、) char *i; for(i=str;*i;i+); return i-str; /*自编库函数strcmp*/ #include int strcmp1(char *str1,char *str2); int main(void) char *str1,*str2; int sum; printf(Please input string1 and string2:); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 49 页 - - - - - - - - - sc
14、anf(%s%s,str1,str2); sum=strcmp1(str1,str2); printf(%dn,sum); return 0; int strcmp1(char *str1,char *str2) for(;*str1=*str2;str1+,str2+) if(*str1=0) return 0; return *str1-*str2; /*经典字符转数子*/ #include int main(void) int i,j=0,k=1; char a10,*s; s=a; printf(Please input:); scanf(%9s,a); if(*s=-) k=-1;
15、s+; while(*s) i=*s-0; j=j*10+i; s+; printf(%dn,j*k); return 0; /*自编内存分配函数*/ /*仿 malloc 函数 */ #include #define NUL 0 #define ALLOSIZE 100 static allocbALLOSIZE; static *allocp=allocb; char *alloc(int n) if(n0&allocp+n=allocb+ALLOSIZE) allocp+=n; return (char*)(allocp-n); 名师资料总结 - - -精品资料欢迎下载 - - - -
16、- - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 49 页 - - - - - - - - - else return (char*)NUL; int main(void) int *p=(int *)alloc(sizeof(int); *p=100; printf(%d:%dn,p,*p); return 0; /* 动态定义一维整形数组*/ #include #include int init(int *block,int siz) int *aux; if(aux=(int *)malloc(siz*sizeof(int)
17、=NULL) return 0; printf(Enter %d integer Values:,siz); *block=aux; while(siz-) scanf(%d,aux+); return 1; int main(void) int *arr,i,size; printf(Array size:); scanf(%d,&size); if(!init(&arr,size) printf(Cannot allocate memoryn); return 0; else for(i=0;isize;i+) printf(%dn,arri); return 0; /* 动态定义一维数组
18、+动态内存分配*/ #include #define NUL 0 #define ALLOCSIZE 100 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 49 页 - - - - - - - - - char *alloc(int n); int init(int *block,int size); static allocbALLOCSIZE; static *allocp=allocb; int main(void) int *arr,size,i; printf
19、(Array size:); scanf(%d,&size); if(!init(&arr,size) printf(Cannot allocate memoryn); return 1; else for(i=0;i0&allocp+(n-1)=allocb+(ALLOCSIZE-1) allocp+=n; return (char*)allocp-n; else return NUL; int init(int *block,int size) int *aux; if(aux=(int *)alloc(size*sizeof(int)=NUL) return 0; else *block
20、=aux; printf(Enter %d integer values:,size); while(size-) scanf(%d,aux+); return 1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 49 页 - - - - - - - - - /* 动态定义二维数组+动态内存分配*/ #include #define ALLOCSIZE 200 #define NUL 0 static allocbALLOCSIZE; static *allocp=al
21、locb; char *alloc(int n) if(n0&allocp+(n-1)=allocb+(ALLOCSIZE-1) allocp+=n; return (char *)allocp-n; else return NUL; int *cas(int r,int c) int *x,i; x=(int *)alloc(sizeof(int)*r); for(i=0;ir;i+) xi=(int *)alloc(sizeof(int); return x; int main(void) int *p,i,j,r,c; printf(Array rows and cols:); scan
22、f(%d%d,&r,&c); p=cas(r,c); printf(Enter %d integer values:,c*r); for(i=0;ir;i+) for(j=0;jc;j+) scanf(%d,&pij); for(i=0;ir;i+) for(j=0;jc;j+) printf(%dn,pij); return 0; /*4x4矩阵转置输出*/ #include int main(void) int a44,i,j,t; for(i=0;i=3;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
23、 - - - - - - - 第 10 页,共 49 页 - - - - - - - - - for(j=0;j=3;j+) scanf(%d,&aij); for(i=0;i=3;i+) for(j=0;j=3;j+) printf(%4d,aij); printf(n); for(i=1;i4;i+) for(j=0;ji;j+) t=aij; aij=aji; aji=t; printf(=n); for(i=0;i=3;i+) for(j=0;j=3;j+) printf(%4d,aij); printf(n); return 0; /*判断月份 */ #include int mai
24、n(void) char month14=Illegal Month, January, February, March, April, May, June, July, August, September, October, November, December; int i; for(;) printf(Please input:); scanf(%d,&i); printf(%sn,i=1&i=12 ? monthi:month0); return 0; /*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
25、 - - - - - - - 第 11 页,共 49 页 - - - - - - - - - /*输入年和本年第几天利用指针计算月份*/ /*/ #include void monthday(int year,int yearday,int *pmonth,int *pday); int main(void) int year,yearday,day,month; printf(Please input:); scanf(%d%d,&year,&yearday); monthday(year,yearday,&month,&day); printf(%d %d %d,year,month,da
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言源程序 2022 语言 源程序
限制150内