求助:某牛公司的C语言面试题

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

请各位大侠指点。
...全文
2045 64 打赏 收藏 转发到动态 举报
写回复
用AI写文章
64 条回复
切换为时间正序
请发表友善的回复…
发表回复
li_geng 2011-09-19
  • 打赏
  • 举报
回复
让此神贴从水底泛起~
androidlive 2011-07-27
  • 打赏
  • 举报
回复
是个4年。。。不知ls 星羽大侠 如何。。。。
kaiaixi 2010-04-12
  • 打赏
  • 举报
回复
的确是大神,受教了
lixung 2008-09-21
  • 打赏
  • 举报
回复
宏或者指针嘛
danny1221 2008-03-25
  • 打赏
  • 举报
回复
[Quote=引用 57 楼 xuelong_zl 的回复:]
csdn上神太多了,拜不过来了.....#-_-
[/Quote]
flyingwow99 2007-12-18
  • 打赏
  • 举报
回复
像qsort指定比较回调函数而已了
HappyTree 2007-10-13
  • 打赏
  • 举报
回复
用宏比较直接,不过qsort的思想要好些
njdragonfly 2007-09-24
  • 打赏
  • 举报
回复
定义一个:
union data{
int i;
float f;
double d;
//需要就加
};
对这个进行排序,不久实现多种类型了
njdragonfly 2007-09-24
  • 打赏
  • 举报
回复
定义一个:
union data{
xuelong_zl 2007-09-24
  • 打赏
  • 举报
回复
csdn上神太多了,拜不过来了.....#-_-
deeplylover 2007-09-24
  • 打赏
  • 举报
回复
楼上的能否写出具体的程序以实现之?
changgongyexia 2007-09-23
  • 打赏
  • 举报
回复

学习了!
fangxishanglu 2007-09-23
  • 打赏
  • 举报
回复
学习-_-!
liefdiy 2007-09-23
  • 打赏
  • 举报
回复
本人到此一晕 -_-|||
MJJiang 2007-09-23
  • 打赏
  • 举报
回复
good
cchaha 2007-09-23
  • 打赏
  • 举报
回复
good
fandouC 2007-09-23
  • 打赏
  • 举报
回复
xuexi
sun625 2007-09-23
  • 打赏
  • 举报
回复
不是吧,牛公司的面试题就这么简单?
feizhuangxuan 2007-09-23
  • 打赏
  • 举报
回复
星羽的回答是比较好的,而且也可以看出功底
星羽 2007-09-22
  • 打赏
  • 举报
回复
来狠的


#include "stdio.h"
#include "stdlib.h"

#define Sort(src, len) { \
void* buf = malloc(sizeof(*src)); \
int i = 0; \
memcpy(buf, &src[len], sizeof(*src)); \
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++;\
} \
memcpy(&src[len], buf, sizeof(*src)); \
free(buf); \
} \

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_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;
}
加载更多回复(44)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧