Дан массив чисел. Определить количество элементов, находящихся в интервале от1 до 12 и расположенных до максимального элемента массива. ПАСКАЛЬ.
Дан массив чисел. Определить количество элементов, находящихся в интервале от1 до 12 и расположенных до максимального элемента массива. ПАСКАЛЬ.
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-20,20); a.Println;
Writeln(a[:a.IndexMax].Where(x->(x>=1) and (x<=12)).Count)
end.
Пример
n= 15
3 12 -1 10 -7 18 10 19 8 9 -2 4 0 19 13
4
А вот так учат писать эту же программу в школе...
const
nn=100;
var
a:array[1..nn] of integer;
i,n,imax,k:integer;
begin
Randomize;
Write('n='); Read(n);
for i:=1 to n do begin
a[i]:=Random(41)-20;
Write(a[i],' ');
end;
Writeln;
imax:=1;
for i:=2 to n do
if a[i]>a[imax] then imax:=i;
k:=0;
for i:=1 to imax do
if (a[i]>=1) and (a[i]<=12) then k:=k+1;
Writeln(k)
end.
Вот отсюда и вопрос: для чего учить писать длинно, сложно и малопонятно?
Гость
Const
N = 33;
Var
A:array[1..N] of integer;
i,Max,k:integer;
Begin
Randomize;
Write('Исходный массив: ');
For i:= 1 to N do
Begin
A[i]:=random(N);
Write(A[i],' ');
End;
WriteLn;
Max:=1;
For i:= 2 to N do
if A[i]>A[Max] then Max:=i;
WriteLn('A[',Max,'] = ',A[Max]);
Write('Искомые элементы: ');
k:=0;
For i:= 1 to N do
if (1<=A[i])and(A[i]<=12) then
Begin
Write(A[i],' ');
k:=k+1;
End;
WriteLn;
Write('Их количество: ',k);
End.
Пример:
Исходный массив: 19 24 23 22 17 15 18 21 16 18 6 17 30 23 14 24 11 28 19 13 4 28 21 23 7 19 26 4 11 16 10 14 28
A[13] = 30
Искомые элементы: 6 11 4 7 4 11 10
Их количество: 7
Не нашли ответ?
Похожие вопросы