对一个数组进行排序,这个数组可以是整型、浮点型

 要求用C语言(不许用C++)编写一个函数,调用这个函数可以对一个数组进行排序,这个数组可以是整型、浮点型等。函数头(返回类型、函数名、参数列表)自定。

============== test 1 =============

#include "stdio.h"

#define Sort(T, src, len) { /
   int i = 0; /
   while (i < len - 1) /
   { /
       int j = i + 1; /
       while (j < len) /
       { /
           if (src[j] < src[i]) /
           { /
               T t = src[j]; /
               src[j] = src[i]; /
               src[i] = t; /
           } /
           j++;/
       } /
       i++;/
   } /
} /

int main()
{
    int     int_array[8] = {9, 8, 5, 5, 3, 2, 1, 9};
    double  flt_array[8] = {9.5, 5.8, 5.4, 5.1, 3.9, 1.2, 0.1, 9.3};
    char    chr_array[8] = {'d', 'v', 'q', 'd', 't', 't', 'w', 'g'};

    int i = 0;

    Sort(int, int_array, 8);
    Sort(double, flt_array, 8);
    Sort(char, chr_array, 8);

    for (i = 0; i < 8; ++i)
        printf("%d ", int_array[i]);
    printf("/n");

    for (i = 0; i < 8; ++i)
        printf("%.2f ", flt_array[i]);
    printf("/n");

    i = -1;
    for (i = 0; i < 8; ++i)
        printf("%c ", chr_array[i]);
    printf("/n");

    return 0;
}

============== test 1 =============

给一个不用传类型的,不过一定要多分配一个元素


#include "stdio.h"

#define Sort(src, len) { /
   int i = 0; /
   while (i < len - 1) /
   { /
       int j = i + 1; /
       while (j < len) /
       { /
           if (src[j] < src[i]) /
           { /
               src[len] = src[j]; /
               src[j] = src[i]; /
               src[i] = src[len]; /
           } /
           j++;/
       } /
       i++;/
   } /
} /

int main()
{
    /* 多分配一个空间,所以个数是 8, 大小是 8 + 1 == 9
    */
    int     int_array[9] = {9, 8, 5, 5, 3, 2, 1, 9};
    double  flt_array[9] = {9.5, 5.8, 5.4, 5.1, 3.9, 1.2, 0.1, 9.3};
    char    chr_array[9] = {'d', 'v', 'q', 'd', 't', 't', 'w', 'g'};

    int i = 0;

    Sort(int_array, 8);
    Sort(flt_array, 8);
    Sort(chr_array, 8);

    for (i = 0; i < 8; ++i)
        printf("%d ", int_array[i]);
    printf("/n");

    for (i = 0; i < 8; ++i)
        printf("%.2f ", flt_array[i]);
    printf("/n");

    for (i = 0; i < 8; ++i)
        printf("%c ", chr_array[i]);
    printf("/n");

    return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值