В целочисленном массиве A[1..N] на отрезке [L,R] необходимо найти максимальный элемент и его номер. Входные данные
Первая строка входного файла INPUT.TXT содержит натуральное число N – количество элементов в массиве. Во второй строке записаны N целых чисел Ai, разделенные пробелом. Третья строка содержит два натуральных числа L и R, которые задают отрезок поиска [L,R] (-1000 ≤ Ai ≤ 1000, 1 ≤ L ≤ R ≤ N ≤ 1000).
Выходные данные
В выходной файл OUTPUT.TXT выведите значение максимального элемента массива на отрезке [L,R] и его индекс. В случае неоднозначности определения индекса следует вывести наименьший из них.
Ввод
7
10 1 2 3 1 9 4
2 5
Вывод
1 2
ответ:1. var
a:array[1..7] of integer;
i:Integer;
begin
//заполнение массива
a[1]:=3;
a[2]:=8;
a[3]:=2;
a[4]:=0;
a[5]:=2;
a[6]:=1;
a[7]:=7;
//вывод массива
for i:=1 to 7 do
Writeln(a[i]);
end.
2. var
c:array[1..12] of integer;
i:Integer;
begin
//заполнение массива
for i:=1 to 12 do
begin
Writeln('Введите ',i,' элемент массива');
readln(c[i]);
end;
//вывод массива
Writeln('Массив');
for i:=1 to 12 do
Write(c[i],' ');
end.
3.var
s:array[1..15] of integer;
i:Integer;
begin
//заполнение массива
for i:=1 to 15 do
s[i]:=random(40);
//вывод массива
Writeln('Массив');
for i:=1 to 15 do
Write(s[i],' ');
end.
4.var
b:array[1..25] of Real;
i:Integer;
begin
//заполнение массива
b[1]:=3;
b[2]:=6;
for i:=3 to 25 do
b[i]:=(b[i-1]+b[i-2])/i;
//вывод массива
Writeln('Массив');
for i:=1 to 25 do
Write(b[i]:9:3);
end.
Объяснение:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
using namespace std;
const int N = 10;
int A[N];
srand(time(0));
for (int i = 0; i < N; ++i)
A[i] = rand() % 201 - 100;
//Вывод исходного массива на экран
for (int i = 0; i < N; ++i)
cout << A[i] << " ";
cout << endl;
//Подсчитаем количества положительных и отрицательных
int kpos = 0, kneg = 0;
for (int i = 0; i < N; i++)
if (A[i] > 0)
++kpos;
else
++kneg;
int * Apos = new int[kpos];
int * Aneg = new int[kneg];
int pos = 0, neg = 0;
for (int i = 0; i < N; ++i)
if (A[i] > 0)
Apos[pos++] = A[i];
else
Aneg[neg++] = A[i];
for (int i = 0; i < N; ++i)
if (i < kpos)
A[i] = Apos[i];
else
A[i] = Aneg[i - kpos];
delete[] Apos;
delete[] Aneg;
//Вывод полученного массива на экран
for (int i = 0; i < N; ++i)
cout << A[i] << " ";
cout << endl;
return 0;
}