Вот такая задача вот....помогите плиз сделать очень срочно нужно....
Даны массивы а(10), в (4), с (7).В каждом массиве заменить минимальный элемент произведением элементов соответственного массива. Элементы каждого массива можно брать любые. В скобках это кол-во эл-ов в каждом массиве.
Пожалуйста помогите!!!!!!
за один проход находишь произведение и адрес минимального эл-та. потом заменяешь...
с чем проблемы? что пробовал делать?
Program massivi;
const n=10; m=7; l=-2;
var
a: array [1..n] of integer;
b: array [4..m] of integer;
c: array [-9..l] of integer;
i, p, min : integer;
begin
for i:= 1 to n do readln(a[i]);
p:= a[1];
min := a[1];
for i:= 1 to n do
begin
p:=p*(a[i]);
if a[i]<min then min := a[i]
begin
min:=p;
end
end;
for i:= 1 to n do readln(b[i]);
p:= b[4];
min := b[4];
for i:= 4 to m do
begin
p:=p*(b[i]);
if b[i]<min then min := b[i]
begin
min:=p;
end
end;
for i:= 1 to n do readln(c[i]);
p:=0;
min := c[-9];
for i:= -9 to n do
begin
p:=p*(c[i]);
if c[i]<min then min := c[i]
begin
min:=p;
end
end;
тебе надо запоминать не сам минимальный элемент, а его индекс.
if b[i]<b[min] then min:=i;
...
b[min]:=p;
ну вот чуток потделал как ты сказала.....подредоктировал код....возможно что то и не правлильно((((
просмотри плиз!и по возможности подскажи что дальше нужно сделать(((
Program massivi;
const n=10; m=7; l=-2;
var
a: array [1..n] of integer;
b: array [4..m] of integer;
c: array [-9..l] of integer;
i, p, min : integer;
begin
for i:= 1 to n do readln(a[i]);
p:= a[1];
min := a[1];
for i:= 1 to n do
begin
p:=p*(a[i]);
if a[i]<a[min] then min := i;
a[min]:=p;
end;
for i:= 1 to n do readln(b[i]);
p:= b[4];
min := b[4];
for i:= 4 to m do
begin
p:=p*(b[i]);
if b[i]<b[min] then min := i;
b[min]:=p;
end;
for i:= 1 to n do readln(c[i]);
p:=0;
min := c[-9];
for i:= -9 to n do
begin
p:=p*(c[i]);
if c[i]<c[min] then min := i;
c[min]:=p;
end;
я ж говорю - сделай нормальные отступы! лесенкой, по уровням...
для примера:
for i:= -9 to n do
begin
p:=p*(c[i]);
if c[i]<c[min] then min := i;
c[min]:=p;
end;
Вот вроде поменял всё как ты говорила!что дальше????((((((
Program massivi;
const n=10; m=7; l=-2;
var
a: array [1..n] of integer;
b: array [4..m] of integer;
c: array [-9..l] of integer;
i, p, min : integer;
begin
for i:= 1 to n do readln(a[i]);
p:=1;
min := a[1];
for i:= 1 to n do
begin
p:=p*(a[i]);
if a[i]<a[min] then min := i;
a[min]:=p;
end;
for i:= 1 to m do readln(b[i]);
p:= 1;
min := b[4];
for i:= 4 to m do
begin
p:=p*(b[i]);
if b[i]<b[min] then min := i;
b[min]:=p;
end;
for i:= 1 to l do readln(c[i]);
p:=1;
min := c[-9];
for i:= -9 to n do
begin
p:=p*(c[i]);
if c[i]<c[min] then min := i;
c[min]:=p;
end;
end;
ну по порядку:
в массиве а
for i:= 1 to n do readln(a[i]);
p:=1;
min := 1; //мы же договорились запоминать индексы!
for i:= 1 to n do
begin
p:=p*(a[i]);
if a[i]<a[min] then min := i;
end;
a[min]:=p; //вот это надо вынести за пределы цикла! а то ерунда получится
for i:= 4 to m do readln(b[i]); //почему от 1 до m? от 4...
p:= 1;
min := 4; //!!!
for i:= 4 to m do
begin //вот здесь уползла строчка
p:=p*(b[i]);
if b[i]<b[min] then min := i;
end;
b[min]:=p; //опять же - выносим
ну вот что я тут намудрил опять!посмотри пожалуйста(((
Program massivi;
const n=10; m=7; l=-2;
var
a: array [1..n] of integer;
b: array [4..m] of integer;
c: array [-9..l] of integer;
i, p, min : integer;
begin
for i:= 1 to n do readln(a[i]);
p:=1;
min := 1;
for i:= 1 to n do
begin
p:=p*(a[i]);
if a[i]<a[min] then min := i;
end;
a[min]:=p;
for i:= 4 to m do readln(b[i]);
p:= 1;
min := 4;
for i:= 4 to m do
begin
p:=p*(b[i]);
if b[i]<b[min] then min := i;
end;
b[min]:=p;
for i:= -9 to l do readln(c[i]);
p:=1;
min := -9;
for i:= -9 to n do
begin
p:=p*(c[i]);
if c[i]<c[min] then min := i;
end;
c[min]:=p;
end;
здесь до 1, а не до n
а так - похоже на правду
for i:= -9 to n do
ясно!спасибо!!!!а как дальше сделать чтоб массивы в конце уже с заменёнными элементами выводились на экран?
так же, как ввод
только вместо readln надо использовать writeln
это все выведется в столбик
а можно write, а потом, когда кончится массив, делать writeln (без параметров). тогда каждый массив будет на своей строке
спасиб большое)))))