/*本程序实现分块查找算法  又称索引顺序查找     需要注意的是分块查找需要2次查找  先对块查找  再对块内查找    2013.12.16    18:44*/
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define N 12
struct index
{
    int key;
    int start;
    int end;
}index[4];
int search(int a[],int l,int o)//实现分块查找
{
    int i,j=0;
    for(i=0;i<4;i++)//实现分块
    {
        index[i].start=j++;
        j+=3;
        index[i].end=j;
        index[i].key=a[j];//关键数据,标记
    }
    i=0;
    while(i<4&&o>index[i].key)//确定所在块
    i++;
    if(i>=4)
    return -1;
    j=index[i].start;
    while(j<=index[i].end&&a[j]!=o)//在块内确定位置,以while语句替代if  简洁
    j++;
    if(j>index[i].end)
    j=-1;
    return j;
   
   
}
int main(int argc,char **argv)
{
    int n[N] ={2,4,8,10,12,14,15,17,21,22,44,55};//要求数据元素必须有序
    int i=0;
    int result;
    int input;
    printf("\n所有数据如下,请输入要查找的数据,本程序将列出它的位置  采用分块查找算法 \n");
    while(i<N)
    {
        printf("%d    ",n[i]);
        i++;
    }
    puts("\n");
    try
    {
    scanf("%d",&input);
    if(input<10)
    throw 0;
    result=search(n,N,input);
    }
    catch (int)
    {
        std::cerr<<"error";
        exit(1);
    }
    if (result==-1)
    printf("输入有误,请检查!");
    else
    printf("您查找的数据  %d在  %d处\n",input,result);
    return 0;
}

 

try throw catch异常处理机制的更多相关文章

  1. ASP.NET(C#)中的try catch异常处理机制

    在开发一个Umbraco平台系统的过程中,遇到了问题. 写的代码如下 fileUrl = MediaHelper.GetMediaUrl(Convert.ToInt32(publishedConten ...

  2. Objective-C try/catch异常处理机制原理。

    try-catch-finaly finally在任何情况下都会执行(不管有没有异常),属于整个体系的附属. 基本思想是跳到捕获锚点,重新执行. http://www.cnblogs.com/mark ...

  3. C++中的try throw catch 异常处理

    今天在开发过程中调用一个库函数结果库函数有throw操作,当前代码没有对throw进行捕获操作,导致进程在main 函数中捕获到异常导致进程crash.所以借此记录下c++关于try,throw,ca ...

  4. Java基础-异常处理机制 及异常处理的五个关键字:try/catch/finally/throw /throws

    笔记: /** 异常处理机制: 抓抛模型 * 1."抛", 一旦抛出,程序终止! printStackTrace()显示异常路径! * 2."抓", 抓住异常 ...

  5. 35 异常机制 异常处理机制 异常处理五个关键字 try、catch、finally、throw、thorws 代码

    异常处理机制 概念 抛出异常 捕获异常 异常处理五个关键字 try.catch.finally.throw.thorws 代码 // main { int a = 1; int b = 0; // 假 ...

  6. Java异常处理机制 try-catch-finally 剖析

    Java拥有着强大的异常处理机制,最近初步学习了下,感觉内容还是挺多的,特此来将自己的理解写出来与大家分享. 一. 在Java代码code中,由于使用Myeclipse IDE,可以自动提醒用户哪里有 ...

  7. JAVA 异常处理机制

    主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...

  8. 深入理解java异常处理机制

       异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的 ...

  9. C++学习笔记27:异常处理机制

    一.异常处理机制基础 异常的定义 程序中可以检测的运行不正常的情况 异常处理的基本流程 某段程序代码在执行操作时发生特殊情况,引发一个特定的异常 另一段程序代码捕获该异常并处理它 二.异常的引发 th ...

随机推荐

  1. BI Project Managerment

    Design doc is the meta data of the code. The project management plan is crucial to your project sinc ...

  2. jquery实现整屏翻屏效果:jquery.mousewheel(一)

    实现整屏上下翻效果:需加载的js <script type="text/javascript" src="js/jquery-1.8.3.min.js"& ...

  3. UVALive 6470 Chomp --记忆化搜索

    题意:给一个只有三行的方块阵(横向最多100个),然后p,q,r分别代表第1,2,3层的方格数,两人轮流去掉一个格子,此时这个格子的右上方都会被去掉,面临只剩最左下角的一个格子的状态的人输,问先手能否 ...

  4. 总结Gerrit常用命令

    查看分支列表,带有*的分支表示是当前所在分支[root@115~~]#git branch 查看分支详细情况 (推荐这种方式)[root@115~~]#git branch -av 创建分支(比如de ...

  5. C# 利用BarcodeLib.dll生成条形码(一维,zxing,QrCodeNet/dll二维码)

    原文:http://blog.csdn.net/kongwei521/article/details/17588825 首先效果: 一.下载BarcodeLib.dll 下载地址 :http://do ...

  6. PyQT制作视频播放器

    Python应用03 使用PyQT制作视频播放器   作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载. 最近研究了Python的两个GUI包,Tki ...

  7. php基础28:文件读取

    <?php //1.追加文件内容 // $fp = fopen("test.txt", "a"); // $outString = "this ...

  8. scrapy 代理

    说明: 本文参照了官网文档,以及stackoverflow的几个问题 概要: 在scrapy中使用代理,有两种使用方式 使用中间件 直接设置Request类的meta参数 方式一:使用中间件 要进行下 ...

  9. [CareerCup] 8.2 Call Center 电话中心

    8.2 Imagine you have a call center with three levels of employees: respondent, manager, and director ...

  10. LeetCode:Gray Code(格雷码)

    题目链接 The gray code is a binary numeral system where two successive values differ in only one bit. Gi ...