Дан массив из 30 элементов, принимающих значения от 0 до 100. Найти произведение двузначных чётных элементов массива, которые начинаются с цифры 5, 6 или 7.Гарантируется, что в исходном массиве есть хотя бы один такой элемент.
Ответы на вопрос
Ответил Mishka28
0
Pascal:
var a:array [1..30] of integer;
i:integer;
p:longint;
begin
p:=1;
randomize;
a[1]:=random(21)+50;
for i:=2 to 29 do a[i]:=random(100);
a[30]:=random(21)+50;
for i:=1 to 30 do write (a[i],' ');
writeln;
for i:=1 to 30 do
if (a[i] in [10..99]) and (a[i] mod 2 = 0) and ((a[i] div 10) in [5..7]) then p:=p*a[i];
writeln ('Proizvedenie: ',p);
readln;
end.
C++:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
int a[30],i;
unsigned long long p = 1;
srand (time(NULL));
a[0] = rand()%70+50;
for (i = 1; i<29; i++)
a[i] = rand()%100;
a[29] = rand()%7+50;
for (i = 0; i<30; i++)
{
cout <<a[i] <<" ";
if ((a[i]/10==5 || a[i]/10==6 || a[i]/10==7) && (a[i]>9 && a[i]<100) && a[i]%2==0)
p*=a[i];
}
cout <<endl;
cout <<"Proizvedenie: " <<p <<endl;
return 0;
}
var a:array [1..30] of integer;
i:integer;
p:longint;
begin
p:=1;
randomize;
a[1]:=random(21)+50;
for i:=2 to 29 do a[i]:=random(100);
a[30]:=random(21)+50;
for i:=1 to 30 do write (a[i],' ');
writeln;
for i:=1 to 30 do
if (a[i] in [10..99]) and (a[i] mod 2 = 0) and ((a[i] div 10) in [5..7]) then p:=p*a[i];
writeln ('Proizvedenie: ',p);
readln;
end.
C++:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
int a[30],i;
unsigned long long p = 1;
srand (time(NULL));
a[0] = rand()%70+50;
for (i = 1; i<29; i++)
a[i] = rand()%100;
a[29] = rand()%7+50;
for (i = 0; i<30; i++)
{
cout <<a[i] <<" ";
if ((a[i]/10==5 || a[i]/10==6 || a[i]/10==7) && (a[i]>9 && a[i]<100) && a[i]%2==0)
p*=a[i];
}
cout <<endl;
cout <<"Proizvedenie: " <<p <<endl;
return 0;
}
Новые вопросы