• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🚨 24 часа до повышения цены на курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    Последний день записи в текущий поток по старой цене Подробнее о курсе ...

Борода с массивом)

  • Автор темы Автор темы Guest
  • Дата начала Дата начала
G

Guest

Задача: Для массива X из 50 элементов, имеющего положительные и отрицательные элементы, вычислить среднее арифметическое положительных элементов массива и заменить им максимальный элемент массива.

Код:
program z_2;

uses crt;

const n=50;

var X: array[1..n] of real;
i, kol, max: byte;
cp_ap, s: real;

BEGIN
clrscr;
randomize;

for i:=1 to n do
X[i]:= 10-random(20);

for i:=1 to n do
writeln(X[i]:1:2);


for i:=1 to n do
begin
if X[i]>0 then
begin
s:=s + X[i];
kol:=kol+1;
end;
end;

cp_ap:=s/kol;

max:=1;

for i:=1 to n-1 do
begin
if X[i+1] > X[i] then
max:=i+1
end;

X[max]:=cp_ap;

for i:=1 to n do
writeln(X[i]:1:2);

readkey;


END.

Проблема: Не определяет правильно максимальный элемент массива :KillMe:
 
тут ошыбка
Код:
 for i:=1 to n-1 do
begin
if X[i+1] > X[i] then //вы сравниваете два последовательных Х, а надо сравнивать Х и МАХ
max:=i+1
end;

X[max]:=cp_ap;

for i:=1 to n do
writeln(X[i]:1:2);

readkey;

END.

надо писать это:

Код:
var kk:integer;
...
...
...
max:=x[1];
for i:=1 to n do
if X[i] > max then
begin
max:=x[i];
kk:=i;
end;
X[kk]:=cp_ap;
for i:=1 to n do
writeln(X[i]:8:2);
readln;

END.
 
if X[i+1] > X then //вы сравниваете два последовательных Х, а надо сравнивать Х и МАХ

Здесь все вроде правильно.
Например массив будет выглядеть так: 5 8 6 3 9 тогда
max=1
X[2]>X[1]? да! тогда max=2
X[3]>X[2]? нет! тогда max не изменяется
X[4]>X[3]? нет! тогда max не изменяется
X[5]>X[4]? да! тогда max=5
В итоге X[max] -это X[5] т.е. 9, а 9 самое большое число...
Я так понимаю. Обьясните!!!
 
Так...давайте не будем дискутировать на отвлеченные темы, а поможем нубу!!!
 
так вроде же всё сказали. Док вроде правильно написал, и ребята пояснили)
А что за бред в посте #6?
Например массив будет выглядеть так: 5 8 6 3 9 тогда
max=1
X[2]>X[1]? да! тогда max=2
X[3]>X[2]? нет! тогда max не изменяется
X[4]>X[3]? нет! тогда max не изменяется
X[5]>X[4]? да! тогда max=5
В итоге X[max] -это X[5] т.е. 9, а 9 самое большое число...
Я так понимаю. Обьясните!!!
а например, массив будет выглядеть так: 5 8 6 3 4 тогда X[5]>X[4]? да! тогда max=5
В итоге X[max] -это X[5] т.е. 4, а 8 самое большое число...

Добавлено: так понятней?
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD