要面试了,写写小程序练练手,顺便记录一下
2011-08-03 18:25
253 查看
1. 大数相乘
2. 求字符串中出现最多的字符和个数
3. 字符串逆转
4.字符串首字母大写,后面字母小写
5. 快速排序
int i=0,j=0,tmp=0; #define MAX_A 12 #define MAX_B 10 void main() { int i=0,j=0,tmp=0; int a[MAX_A]={1,2,3,4,5,6,7,8,9,1,2,3}; int b[MAX_B]={1,2,1,2,1,2,1,2,1,2}; int c[MAX_A+MAX_B]={0}; for(i=0; i<MAX_A; i++){ for(j=0;j<MAX_B;j++){ tmp= b[MAX_B-j-1] * a[MAX_A-i-1] + c[MAX_A+MAX_B-1 -i-j]; /*current multiply*/ if(tmp>9) c[MAX_A+MAX_B-1 -i-j-1] += tmp / 10; /*high bit*/ c[MAX_A+MAX_B -1 -i -j] = tmp %10; /*low bit*/ } } for(i=0;i<MAX_A+MAX_B;i++) printf("%d",c[i]); /*output result*/ }
2. 求字符串中出现最多的字符和个数
void main() { int total[256],max; char *p="abcdabcdaaaabcbbbbbbbbbbbdefg"; char *ps=p,max_char; while(*ps!='\0'){ total[*ps]++; if(total[*ps]>max){ max = total[*ps]; max_char = *ps; } ps++; } printf("max char=%c, number=%d\n",max_char,max); }
3. 字符串逆转
void main() { char p[]="abcdefg"; int t=0,len=strlen(p); while(1){ if(t==len/2) break; p[t]^=p[len-1-t]; p[len-1 -t]^= p[t]; p[t] ^=p[len-1-t]; t++; } printf("reverse string=%s\n",p); }
4.字符串首字母大写,后面字母小写
#include<stdio.h> #include<stdlib.h> #include<string.h> up_lower(char str[]) { int i=0,len= strlen(str); if(str[i]>='a'&&str[i]<='z') str[i] = str[i]-'a'+'A'; i++; while(i<len){ if(str[i]>='A'&&str[i]<='Z') str[i] = str[i]+'a'-'A'; i++; } } void main() { char a[]="aDSKLFJdfklsdjf"; up_lower(a); printf("string=%s\n",a); }
5. 快速排序
#include<stdio.h> #include<stdlib.h> #include<string.h> void swap(int *a,int *b) { int tmp=*a; *a = *b; *b = tmp; } void quick_once(int array[],int head,int tail) { int key,i,j,mid_pos; key = array[head]; i = mid_pos = head; j = tail; if(head>=tail) return; while(i<j){ while(array[j]>=key&&i<j) j--; if(i<j){ swap(array+j,array+mid_pos); mid_pos=j; }else break; while(array[i]<=key&&i<j) i++; if(i<j){ swap(array+i,array+mid_pos); mid_pos=i; }else break; } quick_once(array,head,mid_pos-1); quick_once(array,mid_pos+1,tail); } void main() { int i,a[]={1,2,3,4,5,6,7,8,9}; quick_once(a,0,sizeof(a)/sizeof(int)-1); for(i=0;i<sizeof(a)/sizeof(int);i++) printf("%d ",a[i]); }
相关文章推荐
- 在android4.2中,Google更换了android的蓝牙协议栈,从Bluez换成Bluedroid,我也是初涉这个方面,顺便记录一下。 http://source.android.com/d
- 在android4.2中,Google更换了android的蓝牙协议栈,从Bluez换成Bluedroid,我也是初涉这个方面,顺便记录一下。 http://source.android.com/d
- 2015-11-16面试的一些问题 我想记录一下。
- 堆和栈的区别,顺便介绍一下:全局区(静态区)、文字常量区、程序代码区
- 换工作了,记录一下面试情况
- 顺便记录一下groupwise使用gaim
- 堆和栈的区别,顺便介绍一下:全局区(静态区)、文字常量区、程序代码区
- 在此记录一下SharpGL最初创建的程序
- 今天开始写写博客,记录一下学习的感悟
- 记录一下获取NC程序名称的方法
- 记录一下:不同资源文件重名导致程序取到错误的资源
- 练习metro风格ppt,顺便记录一下想法--利用微信平台做二手服装交易
- 记录一下这一个星期的面试经历吧
- 今天在看程序,看到了break ,C还不是很好,就查了一下。再次记录一下。以后可以随时查看。
- 连awk都不熟悉还搞什么Linux后台开发啊-----顺便分享一下与awk有关的笔试、面试经历
- 记录一下我的android程序之路
- 记录一下上一阶段的面试
- 记录一下我的腾讯和百度两次面试经历
- 【Python】【辅助程序】练手小程序:记录外网动态IP地址
- lqb 增删改查 练手 记录一下