定义函数进行判断一个数是按从大到小排列的数组中的第几个数;若没有则返回0;

泠然 发布于 2010/12/02 16:23
阅读 418
收藏 0

#include<iostream>
using namespace std;
int f(int a[],int beg,int end,int n)//定义函数;
{
   int i;
   i=(beg+end)/2;先和中间的比较
   if(i==beg&&a[beg]!=n)
   {
     return 0;
   }
   else   {
     if(a[i]==n)
      return i;
    else if(a[i]>n)//若大于则和前面的在比;

      f(a,i,end,n);
    else
    f(a,beg,i,n);//若小于则和前面的在比;

   }
}
int main()
{
  int arr[16];int num,j;
  cin>>num;
   for(j=0;j<15;j++)
     cin>>arr[j];
   j=f(arr,0,15,num);
   if(j!=0)
   {
     cout<<j;
   }
   system("pause");
   return 0;
}

加载中
0
蔡华江
蔡华江

居然用了递归,从头读到尾,读到了第几个数相等不就成了。。。

0
RainJ
RainJ

二分查找, 无法判断重复的数

返回顶部
顶部