(转)一道面试题

问题:现有1~100共一百个自然数,已随机放入一个有98个元素的数组a[98]。要求写出一个尽量简单的方案,找出没有被放入数组的那2个数,并在屏幕上打印这2个数。注意:程序不用实现自然数随机放入数组的过程。

  //a[98]中存放着原数组;

   int i=0;

  unsigned char b[100];

  for(i=0;i<100;i++) 

    b[i]=0;
  //依次填入b【100】,b[0]=1,b[1]=2,b[2]=3,.......

  for(i=0;i<98;i++)  

   b[a[i]-1]=a[i];

  //没有被填入数字的应该是还是0,b[n]=0
  for(i=0;i<100;i++)  

  if(0==b[i]) printf("num:%d \n",(i+1));

答案位于原帖#30

http://topic.csdn.net/u/20110713/17/1631008e-8505-4155-820e-7f058b12c41a.html

posted @ 2011-07-18 01:51  johnsneakers  阅读(146)  评论(0编辑  收藏  举报