A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangxiaoit 中级黑马   /  2014-12-18 13:02  /  1084 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wangxiaoit 于 2014-12-18 14:25 编辑

可能都是写小儿科的题目,但后期会更新写比较难而且有意思的练习。
1、: 两个数的交换
方法一:
        x=x*y;
        y=x/y;
        x=x/y;
代码:
  1. void swap(int *x,int *y)
  2.         {
  3.                 *x = *x * *y;
  4.                 *y = *x / *y;
  5.                 *x = *x / *y;
  6.         }
复制代码

方法二:
        x=x+y;
        y=x-y;
        x=x-y;
代码:
  1. void swap1(int *x,int *y)
  2.         {
  3.         *x = *x + *y;
  4.         *y = *x - *y;
  5.         *x = *x - *y;
  6.         }
复制代码

方法三:
        x=x^y;
        y=x^y;
        x=x^y;
代码:
  1. void swap2(int *x,int *y)
  2.         {
  3.         *x = *x ^ *y;
  4.         *y = *x ^ *y;
  5.         *x = *x ^ *y;
  6.         }
复制代码
//=================================分割线==================================//
2、函数原型: double power(double x, int n);    功能: 该函数会计算并返回x 的n 次方。要求用递归方式实现(注: n可能为正数或负数)。
  1. double power(double x, int n)
  2. {
  3.     if(n < 0)
  4.     {   
  5.         n = -n;
  6.         x = 1.0/x;
  7.     }   

  8.     if(n == 0)
  9.     return 1.0;

  10.     return x*power(x,n-1);
复制代码
//=================================分割线==================================//
3、在C语言中有字符串转整型函数 atoi()  但并没有 itoa() 整型转字符串函数 。编程实现itoa(int num)函数,要求根据int型参数(正数 0 或负数)返回字符串指针。
  1. char* itoa(int num)
  2. {
  3.     int len = 1,star = 0,tmp = num;
  4.     char * str = NULL;
  5.                     
  6.     for(; (tmp=tmp/10)!=0; len++);                //获取整型参数位数
  7.     printf("len = %d\n",len);
  8.     if(num < 0)
  9.     {   
  10.         len++;
  11.         star = 1;
  12.         str = (char *)malloc(len);                //根据 len 分配内存
  13.         str[0] = '-';
  14.         num = -num;
  15.     }else
  16.         str = (char *)malloc(len);                //根据 len 分配内存
  17.     len--;
  18.     for(;len>=star;len--)
  19.     {   
  20.         str[len] = num %10 + 48;
  21.         num = num /10;
  22.     }   

  23.     return str;
  24. }
复制代码





8 个回复

倒序浏览
灰常感谢分享~
回复 使用道具 举报
这个东西不错,感谢楼主分享。
回复 使用道具 举报
两个数的交换方法一,是很容易溢出的
回复 使用道具 举报
本帖最后由 邹志鹏 于 2014-12-18 17:28 编辑

两个数交换最经典,最常用的方法居然木有~~使用中间变量交换,
int a=2;int b=3;
int temp;
temp = a;
a = b;
b = temp;
回复 使用道具 举报
邹志鹏 发表于 2014-12-18 17:27
两个数交换最经典,最常用的方法居然木有~~使用中间变量交换,
int a=2;int b=3;
int temp;

失职、马上加上。
回复 使用道具 举报
火焱w 中级黑马 2014-12-18 18:24:55
7#
邹志鹏 发表于 2014-12-18 17:27
两个数交换最经典,最常用的方法居然木有~~使用中间变量交换,
int a=2;int b=3;
int temp;

这个方法也挺好的
回复 使用道具 举报
Xwoder 发表于 2014-12-18 16:54
两个数的交换方法一,是很容易溢出的

恩,是。应该注明优缺点的。。
回复 使用道具 举报
墓笙 中级黑马 2014-12-19 13:02:10
9#
顶一下!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马