签到

05月06日
尚未签到

共有回帖数 0

    告别旧巷

    等级:
    先献上几个

    Q: 如何把一个字符ch添加到一个字符串str的末尾?
    A: 按照一般方法, 我们可能会用
           int len = strlen(str);
           str[len] = ch;
           str[len + 1] = '';
      不过我们也可以用strncpy函数来实现这一功能
           strncpy(str, &ch, 1);

    Q: 如何取得一个数组中元素的个数?
    A: 例如有数组
           int array[] = {5, 7, 1, 4, 0, 8, 6, 9, 3, 2};
      数组array中元素个数可以表示为
           sizeof(array) / sizeof(array[0]);
      或者
           sizeof(array) / sizeof(int);

    Q: 如何将一个数组中的每一个元素初始化为0?
    A: 可以用memset函数(需要#include string.h), 如
           int array[1024];
           memset(array, 0, sizeof(array);

    Q: 如何将一个数组赋值给另一个数组?
    A: 使用memcpy函数(需要#include string.h), 如
           int array1[10] = {1, 2, 3, 4, 5};
           int array2[10];
           memcpy(array2, array1, sizeof(array2));

    Q: 如何交换两个变量的值(不使用中间变量)?
    A:
           int a = 20, b = 30;
           a ^= b;
           b ^= a;
           a ^= b;


    Q:做题目时需要排序,总是得自己写快排,效率还不一定很高,苦恼- -
    A:如果没特别要求,试一试qsort函数- -(#includestdlib.h)
    可以实现诸如简单整形数组排序,结构体形数组按照结构体元素排序等等- -
    具体参见百度百科:http://baike.baidu.com/view/982231.htm#2
    说到排序 再次推销超快超简单的梳子排序吧
    void CombSort(int* data, int n)
    {
       const double shrink = 1.25;
       int i, temp, delta = n, noswap = 0;

       while(!noswap)
       {
           for(noswap = 1, i = 0; i + delta  n; i++)
               if(data  data[i + delta])
               {
                   temp = data;
                   data = data[i + delta];
                   data[i + delta] = temp;
                   noswap = 0;
               }
           if(delta  1)
           {
               delta /= shrink;
               noswap = 0;
           }
       }
    }


    楼主 2016-04-15 09:18 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知