对一个数组进行排序,这个数组可以是整型、浮点型
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;
}
============== 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;
}
相关文章推荐
- 已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。 给定一个int数组A,同时给定
- 写冒泡排序可以排序一个整型数组
- JAVA--定义一个包含整型数组参数的方法,用来接收成绩数组,进行成绩排序并输出前三名
- 2014年去哪儿网笔试题--给定一个整型数组,对这个整型数组排序,使得按序拼接数组各元素得到的值最小。
- 在控制台中输入一个数组,并对这个数组进行重新排序,将第一个数和最后一个交换,将第二个和倒数第二个交换
- 使用qsort排序一个整型数组,一个浮点型数组,一个字符串数组
- 写冒泡排序可以排序一个整型数组。
- 【C语言】写冒泡排序可以排序一个整型数组。
- 2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小。
- 2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小
- 个有10个元素的整型一维数组,用户输入9个数据,调用函数,对数组元素进行从小到大排序后,在函数中输入一个数,插入到数组中正确的位置,并输出
- 定义一个有10个空间的整型数组,数组中的每个位置存放8-98之间的随机偶数, 输出这个数组中的每个数,再排序,排序后再输出。
- 一个字符数组,里面的字符可能是a-z、A-Z、0-9.现在要求对数组进行排序,要求所有小写字符放在最前面,所有大写字符放在中间,所有数字放在最后,而且各部分内部分别有序(创新工场)
- 【Java】编写一个方法,对字符串数组进行排序,将所有变位词排在相邻的位置
- 输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 实现一个选择排序程序,排序整型数组
- 那些年我们刷过的算法题(排序)---有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序
- 对一个数组按给定的下标排序,仅使用两两交换的方式,要求不能对数组进行扩容尽可能使用额外少的空间。原数组为:A,B,C,D,E, 现给定新的位置为3, 0, 1, 4, 2那么排序为D,A,B,E,C
- 将一个长度不定数组按照自定义标准进行排序