求助,一道面试题

ddm3020 2009-11-10 08:16:16
完成程序,实现对数组的降序排序
  #include
  void sort( );
  int main()
  {
   int array[]={45,56,76,234,1,34,23,2,3}; //数字任//意给出
   sort( );
   return 0;
  }
  void sort( )
  {
   ____________________________________
   | |
   | |
   |-----------------------------------------------------|
  }
////注意,sort( ); 不能传参数
...全文
656 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
wonder2007 2010-01-15
  • 打赏
  • 举报
回复
关注中,还是没有想明白
Allenzhuy 2010-01-15
  • 打赏
  • 举报
回复
学习了!
zhongsishun 2010-01-14
  • 打赏
  • 举报
回复
不能传参,又不是全局,干脆考汇编得了,无聊的面试题。
dqdx_zch 2010-01-14
  • 打赏
  • 举报
回复
不会,关注一下
cir2633 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 konglong_c 的回复:]
无聊的题。用指针加个最初级的冒泡排序就OK了。又不难。
[/Quote]
强!
Glovingkele 2010-01-14
  • 打赏
  • 举报
回复
看看

直接跟他说,他想考你什么
zhou1xp 2010-01-14
  • 打赏
  • 举报
回复
这个公司看来比较垃圾
bobo364 2010-01-14
  • 打赏
  • 举报
回复
不明白,奇怪的题
不知名小ITer 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 selooloo 的回复:]
void sort(void)
{
    int n=1,*p,i,j;
    p=&n;
    while(1)
    {
            if(*p==45 && *(p+1)==56)//这个不安全吧,如果内存中刚好有两个整数这样分布呢?那不是搞错了地址...?
//或者说你只是局限在这个小程序中的..
                          break;
            p++;

    }
    for(i=8;i>0;i--)
    for(j=0;j <i;j++)
    if(p[i]>p[j])
    {
                  p[i]=p[i]^p[j];
                  p[j]=p[i]^p[j];
                  p[i]=p[i]^p[j];

    }
}
[/Quote]
unbutun 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 do_fork 的回复:]
无聊的面试题,无非是想考函数地址在内存中的布局,
void sotr()
{
int a;
int *p=&a;
p -= ?; //这里填写一个适当的偏移,就能让p指向待排序的数组
}

不幸的是,这种东西依赖具体的编译器,不具备通用性,
编译器可能会有一些padding字节加进去
[/Quote]


good
versaariel 2010-01-14
  • 打赏
  • 举报
回复
不知道他想考察什么。。。
紫涵子 2010-01-14
  • 打赏
  • 举报
回复
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
wangshiruyan1989 2010-01-14
  • 打赏
  • 举报
回复
用冒泡排序就可以了
xiejijun_05 2010-01-13
  • 打赏
  • 举报
回复
............
z569362161 2010-01-13
  • 打赏
  • 举报
回复
这种题也能面试?

太。。。。。。。。。。。。。。。。。。。。。。
hust_zhangxiaowei 2010-01-13
  • 打赏
  • 举报
回复
void sort(void)
{
int n=1,*p,i,j;
p=&n;
while(1)
{
if(*p==45 && *(p+1)==56)
break;
p++;

}
for(i=8;i>0;i--)
for(j=0;j <i;j++)
if(p[i]>p[j])
{
p[i]=p[i]^p[j];
p[j]=p[i]^p[j];
p[i]=p[i]^p[j];

}
}


应该还要判断栈的增长方向吧
macrojj 2010-01-13
  • 打赏
  • 举报
回复
跟面试官说,你是不会写这样的代码的。
zhijun8888 2010-01-13
  • 打赏
  • 举报
回复
不参考资料,让面试考官做做。
jxxx2967 2010-01-13
  • 打赏
  • 举报
回复
不能传参,又不是全局,干脆考汇编得了,无聊的面试题。
pady_pady 2010-01-13
  • 打赏
  • 举报
回复
无聊的题目,优化和不优化情形是很不一样的,就算是用纯汇编都要杜绝这种滥用
加载更多回复(21)

69,371

社区成员

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

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