您的位置:首页 > 其它

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

2007-09-22 13:09 519 查看
要求用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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐