В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Blackrabbit300401
Blackrabbit300401
12.02.2022 03:56 •  Информатика

Линейный поиск с барьером с++. не получается сделать проверку на наявность элемента в массиве. вот код :
#include
#include
#include
#include
using namespace std;
int main()
{
setlocale(lc_all, "ru");
srand(time(null));
const int size = 5;
double arr[size];
for (int i = 0; i < size; i++)
{
arr[i] = rand() % 26-10;
}
for (int i = 0; i < size; i++)
{
cout < < arr[i]< < " ";
}
int find_el;
cout < < endl < < "введите искомый элемент" < < " ";
cin > > find_el;
int position=0;
bool key;
if (arr[size - 1] ! = find_el) //проверим, нет ли find_el на последней позиции
{
for (position = 0; arr[position] ! = find_el; position++) //поиск
{
key = false;
}
if (key = true)
cout < < "индекс этого элемента" < < " "< else
cout < < "данного элемента нет в массиве";
}
else
cout < < size - 1;
}

Показать ответ
Ответ:
swaTor
swaTor
15.10.2021 17:25

const N = 7;

const MAX = 10;

var a,b,c: array [1..N] of integer;

var d: array [1..N] of boolean;

var i,j,k,flag: integer;

begin

// Автозаполнение

randomize();

for i:=1 to N do  

 begin

 a[i]:=random(MAX+1);

 b[i]:=random(MAX+1);

 c[i]:=random(MAX+1);

 d[i]:=false;

 end;

 

// Вывод на экран

write('Массив a: ');

for i:=1 to N do write(a[i],' ');

write(сhr(10),'Массив b: ');

for i:=1 to N do write(b[i],' ');

write(сhr(10),'Массив c: ');

for i:=1 to N do write(c[i],' ');

// Поиск элементов, принадлежащих всем 3м массивам

write(сhr(10),'Элементы, принадлежащие всем трем массивам: ');

for i:=1 to N do

 begin

 flag:=0;

   // Следующий цикл проверяет, есть ли элемент a[i]

   // в массиве b.

   for j:=1 to N do

     begin

       if (a[i]=b[j]) then  

         begin  

         flag:=flag+1;

         break;

         end;

     end;

   // Следующий цикл проверяет, есть ли элемент a[i]

   // в массиве c.

   for j:=1 to N do

     begin

       if (a[i]=c[j]) then  

         begin  

         flag:=flag+1;

         break;

         end;

     end;

   // Если элемент найдет во всех трех массивах, в массиве d

   // указывается, что данный элемент уже найден

   if (flag=2) then d[i]:=true;

   

   // В следующем цикле проверяется, был ли уже в массиве a  

   // элемент a[i]. Если был, и если он есть во всех трех массивах

   // (условие d[k]), то флаг обнуляется и элемент не выводится  

   if (i>0) and (flag=2) then  

     for k:=i-1 downto 1 do

       if (a[k]=a[i]) and (d[k]) then flag:=0;

   if (flag=2) then write(a[i],' ');

   end;

end.

0,0(0 оценок)
Ответ:
boss110
boss110
13.03.2020 11:40

#include <iostream>

#define min(a,b) ((a)<(b)?(a):(b))

#define max(a,b) ((a)>(b)?(a):(b))

using namespace std;

double distance(double x1, double y1, double x2, double y2)

{

return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));

}

int main() {

double ax, ay, bx, by, cx, cy;

double ab, ac, bc;

cout << "A: ";

cin >> ax >> ay;

cout << "B: ";

cin >> bx >> by;

cout << "C: ";

cin >> cx >> cy;

ab = distance(ax, ay, bx, by);

bc = distance(bx, by, cx, cy);

ac = distance(ax, ay, cx, cy);

// Используем свойство тупоугольности треугольника: a^2+b^2<c^2

if ((ab * ab + bc * bc < ac * ac) || (ab * ab + ac * ac < bc * bc) || (bc * bc + ac * ac < ab * ab))

{

 // Площадь по формуле Герона

 double hp = (ab + ac + bc) / 2; // Полупериметр

 cout << "Square: " << sqrt(hp * (hp - ab) * (hp - ac) * (hp - bc)) << endl;

 cout << max(max(ab, ac), bc) << ", "

  << (ab + ac + bc - min(min(ab, ac), bc) - max(max(ab, ac), bc)) << ", "

  << min(min(ab, ac), bc);

}

else cout << "Entered points cannot be vertices of an obtuse triangle";

return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота