Обсуждение задачи на масссивы

Задавайте вопросы в комментариях. Постараюсь ответить на все вопросы по теме.

8 комментариев

  1. Лиза Щетинина

    Как ввести в массив: Напишите программу, которая заполняет массив из N элементов случайными целыми числами в диапазоне [ A , B ] и определяет количество чётных и количество нечётных элементов этого массива.

    program ww;
    var
    s: array[1..10000] of longint;
    w,ch,nch,N,B,A:integer;
    begin
    readln(A,B,N);
    while (N0) do
    begin
    N:= N-1;
    w:= random(b-a+1)+a;
    write(w,’ ‘);
    if w mod 2=0 then
    Ch:=Ch+1 else
    Nch:=Nch+1
    end;
    writeln(‘ ‘);
    writeln(Ch,’ ‘,Nch);
    end.

    • ekaterinafilinav

      Если для сайта, то write(w,’ ‘); не нужно, так как в условии это не требуется

  2. Лиза Щетинина

    Напишите программу, которая находит в массиве количество элементов, равных максимальному.
    Входные данные
    Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 max)then
    max:=A[i];
    end;
    for i:= 1 to N do begin
    if ((A[i])=max)then
    p:=p+1;
    end;
    write(max,’ ‘,p);
    end.

    Выдает только 12 баллов, найдете, пожалуйста, ошибку

  3. Лиза Щетинина

    Напишите программу, которая находит в массиве минимальный и максимальный из чётных положительных элементов.
    Входные данные
    Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 .
    Выходные данные
    Программа должна вывести в одной строке минимальный и максимальный из чётных положительных элементов массива, разделив их пробелом. Если в массиве нет чётных положительных элементов, программа должна вывести два числа -1.

    program ww;
    var
    A: array[1..10000] of longint;
    i,min,max,N,p:integer;
    begin
    readln(N);
    for i:= 1 to N do begin
    read(A[i]);
    end;
    min:=10001;
    max:=0;
    for i:= 1 to N do begin
    if(((A[i])0)and((A[i])mod 2=0))then
    min:=A[i];
    if(((A[i])>max)and((A[i])>0) and ((A[i])mod 2=0))then
    max:=A[i];
    end;
    if ((max>0)and(min<=10001))then
    write(min,' ',max)else
    write('-1')
    end.

    Выдает только 12 баллов, укажите на ошибку

  4. ekaterinafilinav

    min:=10001; неправильно, так как не указано максимальное значение элементов. Следует взять за минимум первый попавшийся элемент.
    min:=A[0];
    max:=A[0];

    • Лиза Щетинина

      Но если брать первый попавшийся, то он может не удовлетворить условиям (чётных положительных)

    • Лиза Щетинина

      Но спасибо, что указали на ошибку. Я все же справилась с задачей.

      • А я всё-таки не могу решить
        Var a:array[1..10000] of integer;
        i,n,mi,ma:integer;
        Begin
        read(n);
        for i:=1 to n do
        read(a[i]);
        mi:=10000;
        begin
        for i:=n downto 1 do
        if (a[i]>0) and(a[i] mod 2=0)and(a[i]ma) and (a[i]>0) and(a[i] mod 2=0)then
        ma:=a[i]
        else ma:=-1;
        end;
        write(mi,’ ‘,ma)
        end.
        выдаёт только 11 баллов.

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>