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

0 голосов

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


спросил от (19 баллов) в категории Информатика
2 Ответы
0 голосов
ответил от Отличник (5.2k баллов)
 
Лучший ответ

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;

оставил комментарий от Отличник (6.8k баллов)

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

0 голосов
ответил от Отличник (6.8k баллов)

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 баллов)

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

оставил комментарий от Отличник (6.8k баллов)

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

оставил комментарий от Отличник (6.8k баллов)

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.

оставил комментарий от (19 баллов)

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

...