Есть ответ 👍

Составить программу: 1. организовать одномерный массив из n элементов 2. организовать двоичный поиск заданного элемента.

218
304
Посмотреть ответы 2

Ответы на вопрос:


//dev-c++ 5.11 #include < stdio.h> int binaryfounder(int*,int,int,int,int*); int main(void)   {int ar[100],n,res=-1,i,j,buf,val,arind[100];   scanf("%d",& n);   for(i=0; i< n; i++)   scanf("%d",& ar[i]);   printf("enter searching value: ");   scanf("%d",& val);   for(i=0; i< n; i++)   arind[i]=i;   for(i=0; i< n-1; i++)   for(j=i+1; j< n; j++)     if(ar[i]> ar[j])     {buf=ar[i];     ar[i]=ar[j];     ar[j]=buf;     buf=arind[i];     arind[i]=arind[j];     arind[j]=buf; }   binaryfounder(ar,0,n-1,val,& res);   if (res==-1)   printf("not found");   else   printf("found in position %d",arind[res]);   return 0; } int binaryfounder(int ar[],int left,int right,int val,int* res)   {int kar=(left+right)/2;   if (*res! =-1)   return 0;   if (left> right)   return 0;   if (ar[kar]==val)   *res=kar;   if (ar[kar]< val)   binaryfounder(ar,kar+1,right,val,res);   if (ar[kar]> val)   binaryfounder(ar,left,kar-1,val,res); } пример ввода: 5 1 2 3 4 5 4 пример вывода: found in position 3 //считаем с 0

Var x: integer; begin writeln('введите значение числа x'); readln(x); writeln('y=|',abs(x),'|'); end.

Популярно: Информатика