本帖最后由 wangxiaoit 于 2014-12-18 14:25 编辑
可能都是写小儿科的题目,但后期会更新写比较难而且有意思的练习。
1、: 两个数的交换
方法一:
x=x*y;
y=x/y;
x=x/y;
代码:
- void swap(int *x,int *y)
- {
- *x = *x * *y;
- *y = *x / *y;
- *x = *x / *y;
- }
复制代码
方法二:
x=x+y;
y=x-y;
x=x-y;
代码:
- void swap1(int *x,int *y)
- {
- *x = *x + *y;
- *y = *x - *y;
- *x = *x - *y;
- }
复制代码
方法三:
x=x^y;
y=x^y;
x=x^y;
代码:
- void swap2(int *x,int *y)
- {
- *x = *x ^ *y;
- *y = *x ^ *y;
- *x = *x ^ *y;
- }
复制代码 //=================================分割线==================================//
2、函数原型: double power(double x, int n); 功能: 该函数会计算并返回x 的n 次方。要求用递归方式实现(注: n可能为正数或负数)。
- double power(double x, int n)
- {
- if(n < 0)
- {
- n = -n;
- x = 1.0/x;
- }
-
- if(n == 0)
- return 1.0;
-
- return x*power(x,n-1);
复制代码 //=================================分割线==================================//
3、在C语言中有字符串转整型函数 atoi() 但并没有 itoa() 整型转字符串函数 。编程实现itoa(int num)函数,要求根据int型参数(正数 0 或负数)返回字符串指针。
- char* itoa(int num)
- {
- int len = 1,star = 0,tmp = num;
- char * str = NULL;
-
- for(; (tmp=tmp/10)!=0; len++); //获取整型参数位数
- printf("len = %d\n",len);
- if(num < 0)
- {
- len++;
- star = 1;
- str = (char *)malloc(len); //根据 len 分配内存
- str[0] = '-';
- num = -num;
- }else
- str = (char *)malloc(len); //根据 len 分配内存
- len--;
- for(;len>=star;len--)
- {
- str[len] = num %10 + 48;
- num = num /10;
- }
-
- return str;
- }
复制代码
|
|