free pascal 编程问题

发布网友

我来回答

1个回答

热心网友

type bit=array[1..10]of longint;
var i,n:longint;
a:bit;
falg:boolean;
procedure sort;
var i,j:integer;
t:longint;
begin
for i:=1 to 9 do
for j:=i+1 to 10 do
if a[i]>a[j] then
begin
t:=a[i];a[i]:=a[j];a[j]:=t;
end;
end;
function BinarySearch(num:longint;var b:bit):longint;
var low,mid,high:longint;
begin

low:=1; high:=n;
mid:=(low+high) div 2;
while (low<=high) and (b[mid]<>num) do
begin
if b[mid]>num then high:=mid-1;
if b[mid]<num then low:=mid+1;
mid:=(low+high) div 2;
end;{while}
if low>high then BinarySearch:=0 else BinarySearch:=mid;
end;{function}

begin
n:=10;
for i:=1 to n do read(a[i]);
sort;
read(i);//i就是题目中的x
write(BinarySearch(i,a));

end.{main}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com