当前位置:编程学习 > C/C++ >>

C++编程问题

从一组已经排序的整数数组中查询某个整数x是否存在,要求用折半法,若有则输出位置,没有则输入提前信息~具体的编程
追问:来自手机问问追问同上一个人的
答案:#include <iostream>
using namespace std;

int main()
{
 int a[10] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
 int min = 0;
 int max = 9;
 int s;
 int temp;
 cout << "please input the number you want search:  ";
 cin >> s;
 while(min < max)
 {
  temp = (max+min)/2;
  if(s > a[temp])
  {
   min = temp + 1;
  }
  else if(s < a[temp])  
  {
   max = temp - 1;
  }
  else
   break;
 }
 if(s == a[temp])
  cout << "found! the location is " << temp << endl;
 else
  cout << "the number is not found!" << endl;
 return 0;
}

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a[8]={1,3,5,7,9,11,13,15};
    int x; scanf("%d",&x);
    int l=0;
    int r=7;
    int f=0;
    while(l<r)
    {
        int m=(l+r)/2;
        if(a[m]==x) { f=1; printf("Found at %d\n",m); break; }
        if(a[m]<x)  l=m+1;
        else        r=m;
    }
    if(!f) printf("%d not found\n",x);
    return 0;
}

上一个:c++ 编写dll 示例
下一个:C++课程设计报告

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,