电路检修问题解决方案.docx
2页电路检修问题解决方案一、 项目描述在风雨交加的夜里,从某水库闸房到防洪指挥部的线路发生了故障,这是一条10 公里长的线路,共计200根电线杆子,如何迅速查出故障所在?如果沿着线路一小段一小段 去查找,困难很多,每检查一个点就要爬一次电线杆子,那么线路维修工人怎样工作最合理 呢?二、 项目分析对于生活中一些故障排查、人员查询等问题,都可•以通过二分法的思想来处理这类问题, 其过程比较省,速度比较快由于共计200根电线杆子,设闸门和指挥部所在处点分别为1、 200,维修工人首先从中间点100检查,用随身带的话机向两端测试时,发现1-100段正常, 断定故障在101-200段,再到101-200段的中间点150检查,发现150-200段正常,可见故 障在101-149段,再到101-149段的中间点125检查,这样每查一次,就可以把待查线路长 度缩减为一半,故最多经过7次查找就可以确定线路故障所在地三、 项目实现^include "stdio. h”〃电杆结构类型struct Circuit(int id; 〃电杆编号int tag; //0:存路问题1:线路前半段正常-1:线路后半段正常}C[200];mai n ()(int i, low=0, high=199, mid;〃对每个电杆编号、使用状态赋值for(i=0;i<199;i++)(C[i]. id=i+l;C[i].tag=l;}while(low<=high) mid=(low+high)/2;printfC请输入第%d个电杆线路状态:〃,mid+1);scanf("%d”, &C[mid]. tag);if (C[mid]. tag=O) //线路故障查找成功(printf ("第%d个电杆线路存在问题!\n", mid+1); break;}if (C[mid]. tag==l) 〃线路前半段正常low=mid+1;if(C[mid].tag—1) 〃线路后半段正常high二midT;}if(low>high)printf (“线路检修失败! \n〃);。





