Линейный поиск с барьером с++. не получается сделать проверку на наявность элемента в массиве. вот код :
#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;
}
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.
#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;
}