Предмет: Информатика,
автор: Good1994
Даны два массива a и b длины N, причем массив b состоит только
из нулей и единиц. Составить программу суммирования тех элементов
массива a, которым соответствуют единицы массива b. Найти K – номер
первого элемента массива b, равного 1. Печатать K, сумму, массивы a и b.
P.s. делается в PascalABC.NET
Ответы
Автор ответа:
1
const
n=20;
var
a,b:array[1..n] of integer;
i,k,s:integer;
begin
Randomize;
Writeln('Массив a');
for i:=1 to n do
begin
a[i]:=Random(50)+1;
Write(a[i]:3)
end;
s:=0;
Writeln(#13#10,'Массив b');
for i:=1 to n do
begin
b[i]:=Random(2);
Write(b[i]:3);
if b[i]=1 then s+=a[i]
end;
i:=1;
while (b[i]=0) and (i<=n) do Inc(i);
if i>n then k:=0 else k:=i;
Writeln(#13#10,'k=',k,', s=',s)
end.
Тестовое решение:
Массив a
22 50 34 22 19 1 36 5 23 30 27 24 48 22 24 27 14 14 39 3
Массив b
0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1
k=2, s=318
n=20;
var
a,b:array[1..n] of integer;
i,k,s:integer;
begin
Randomize;
Writeln('Массив a');
for i:=1 to n do
begin
a[i]:=Random(50)+1;
Write(a[i]:3)
end;
s:=0;
Writeln(#13#10,'Массив b');
for i:=1 to n do
begin
b[i]:=Random(2);
Write(b[i]:3);
if b[i]=1 then s+=a[i]
end;
i:=1;
while (b[i]=0) and (i<=n) do Inc(i);
if i>n then k:=0 else k:=i;
Writeln(#13#10,'k=',k,', s=',s)
end.
Тестовое решение:
Массив a
22 50 34 22 19 1 36 5 23 30 27 24 48 22 24 27 14 14 39 3
Массив b
0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1
k=2, s=318
Похожие вопросы
Предмет: Окружающий мир,
автор: COБАКА228
Предмет: Русский язык,
автор: телепузик6666
Предмет: Русский язык,
автор: Lyaisan1931
Предмет: Математика,
автор: Anna5klass
Предмет: Биология,
автор: luntiiikkkk2003