- 博客(15)
- 收藏
- 关注
原创 将数组中奇数都放前面,偶数都放在后面
void adjust(int *arr,int left,int right){ int temp; while(left { if(1==left%2) left++; if(0==right%2) right--; temp=arr[left]; arr[left]=arr[right]; arr[right]=temp;
2015-09-28 14:23:25 4231
原创 给一组数,只有两个数只出现了一次,其他所有数都是成对出现的。怎么找出这两个数。
#include#include#includeint find_one_alone(int *arr,int len){ int ret=0; int i=0; for(;i { ret^=arr[i]; } return ret;}int find_flag(int num){ int n=0; while(nu
2015-09-22 10:15:25 393
原创 关于main()函数参数的问题
使用main函数的参数,实现一个整数计算机,“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法。实现的函数如下:#include#includeint main(int argc,char *argv[]){ int i=0; int num1,num2; int ret; printf("请输入两个操作
2015-09-22 10:00:08 399
原创 将一个字符串向左旋转n个字符
方法一:一个一个翻转,但有循环嵌套,效率比较低。#include#include#includevoid revovle(char *str,int n){ int len=strlen(str); int i; char temp; while(n) { temp=str[0]; for(i=0;i { str[i]
2015-09-15 22:49:59 556
原创 判断一个字符是否是另一个字符的旋转字符串
方法一:将字符串1与字符串1连接,再判断字符串2是否为连接后的字符串1的子字符串,可以使用库函数实现。#include#include#includevoid revovle(char *str1,char *str2){ int len1=strlen(str1); int len2=strlen(str2); strncat(str1,str1,6);
2015-09-15 16:58:57 787
原创 实现memmove函数
#includevoid *my_mememove(void *dest,void *src,size_t count){ char *pdest=(char *)dest; char *psrc=(char *)src; char *ret=(char *)pdest; if(pdest>psrc && pdest { while(count--)
2015-09-12 12:33:30 381
原创 判断是否为回文数或回文字符
判断一个数是否为回文数:#includeint fun(int num){int old = num; //必须要保存原数,后面要进行比较int newnum = 0;while(num){newnum = ret* 10 + num % 10;num /= 10;}return newnum == old;}int main()
2015-09-09 21:18:10 541
原创 将空格转换成%20
字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“we are happy.”,则输出“we%20are%20happy.”。方法一:用数组,从前往后复制,遇到空格变成 ,旧数组下标加1,新数组下标加3;#includevoid transfer(char old[]){char ne[20]={' '}
2015-09-09 20:58:04 2932
原创 用冒泡,选择,快速排序的方法排序
冒泡排序法#includevoid swap(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp;}void sort(int x[],int n){ int i,j; for(i=0;i { for(j=0;j { if(x[j]>x[j+1]) swap
2015-09-08 22:33:37 333
原创 对可变参数列表的使用
求平均数:#include#includeint average(int val,...){ int sum=0; int i=0; va_list arg; va_start(arg,val); for(i=0;i { sum+=va_arg(arg,int); } va_end(arg); return sum/val;
2015-09-08 18:27:45 302
原创 不用条件和循环语句打印出1~1000
#includeint print(int n){ (n-1)&&print(n-1); printf("%d ",n);}int main(){ print(1000); return 0;}
2015-09-06 14:12:01 566
原创 用递归实现字符串翻转
#include#includechar *reverse_str(char *str){ int len=0; char temp; int len=strlen(str); if(!str) return NULL; if(len>1) { temp=str[0]; str[0]=str[len-1]; str[
2015-09-06 14:02:05 372
原创 实现strcat
#include#includechar *my_strcat(char *str,const char *ptr){ char *temp=str; assert(str); assert(ptr); while(*str!='\0') { str++; } while(ptr!='\0') { *str=*ptr; str+
2015-09-06 13:57:43 277
原创 实现 strcmp
#include#includeint my_strcmp(const char *stra,const char *strb){ assert(stra); assert(strb); while(*stra==*strb) { if(*stra=='\0') return 0; stra++; strb++; } if
2015-09-06 13:55:53 533
原创 用三种方式实现strlen
//用递归实现#includeint my_strlen(char *string){ if(*string=='\0') return 0; else return 1+my_strlen(string+1);}int main(){ char a[]="abcdefg"; printf("%d\n",my_strlen(a));
2015-09-05 16:11:42 303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人