1.Задан массив А(120). Подсчитать в нем количество элементов,абсолютная величина которых...

0 голосов
29 просмотров

1.Задан массив А(120). Подсчитать в нем количество элементов,абсолютная величина которых больше 17
2. Задан массив С(20). Изменить знаки всех нечётных элементов массива на противоположные
Помогите пожалуйста


Информатика (19 баллов) | 29 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

1. c++
std::vector< int > A;
...// заполнение массива
int result = std::count_if(A.begin(), A.end(), [](int arg) -> bool {return abs(arg) > 17;});
2. c++
std::vector< int > C;
...// заполнение массива
for (auto & iter: C)
     if (iter % 2 == 1) iter *= -1;

(5.2k баллов)
0

зачем вы выделяете вектора, когда количество элементов известно??? к тому же в школах они не изучаются, а про итераторы я вообще молчу.

0 голосов

Program a1;
var a:array[1..120] of integer;
i,s:integer;
begin
randomize();
for i:=1 to 120 do
begin
a[i]:=random(50);
write(a[i],' ');
if abs(a[i]) > 17 then s:=s+1;
end;
write(s);
end.

program a2;
var c:array[1..20] of integer;
i:integer;
begin
randomize();
for i:=1 to 20 do
begin
c[i]:=random(25);
c[i]:=c[i]*(-1);
write(c[i],' ');
end;
end.

(6.8k баллов)
0

ой, не увидел то, что нужно знаки нечётных менят

0

вот, поправил

0

program a2;
var c:array[1..20] of integer;
i:integer;
begin
randomize();
for i:=1 to 20 do
begin
c[i]:=random(25);
if c[i] mod 2 = 1 then c[i]:=c[i]*(-1);
write(c[i],' ');
end;
end.

0

Спасибо большое