首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 软件考试 > 初级职称 >

2009年5月程序员笔试考前练习(44)

2010-10-27 
读书人IT频道reader8.com/exam/jisuanji/  【说明】  函数move(int*a,int n)用于整理数组a[]的前n个元素,使其中小于0的元素移到数组的前端,大于0的元素移到数组的后端,等于0的元素留在数表中间。  令a[0]~a[low-1]小于0(
读书人IT频道reader8.com/exam/jisuanji/   【说明】
  函数move(int*a,int n)用于整理数组a[]的前n个元素,使其中小于0的元素移到数组的前端,大于0的元素移到数组的后端,等于0的元素留在数表中间。
  令a[0]~a[low-1]小于0(初始为空);a[low]~a[i-1]等于0(初始为空);a[i]~a[high]还未考察,当前考察元素为a[i]。a[high+1]~a[n-1]大于0(初始为空)。
  【函数】
  move(int*a,int n)
  {
  int i,low,high,t;
  low=i=0;high=n-1;
  while( (1) )
  if(a[i]<0)
  {
  t=a[i];a[i]=a[low];a[low]=t;
  (2) ;i++;
  }
  else if( (3) )
  {t=a[i];a[i]=a[high];a[high]=t;
  (4) ;
  }
  else (5) ;
  }
  【答案】
  (1)i<=high
  (2)low++
  (3)a[i]>0
  (4)high--
  (5)i++ 读书人IT频道reader8.com/exam/jisuanji/
热点排行