
Харалампий
5 год назад
Имеется код:var a: array[1..15] of integer;i,k,l,z,b,c,qu:integer;min,max,u:byte;beginrandomize;l:= 0;k:= 0;for i:= 1 to 15 doa[i]:=random(20,40);writeln;for i:= 1 to 15 dowrite(a[i]:4);writeln;writeln;for i:= 1 to 15 doif a[i]<0 then l:= l+1else if a[i]>0 thenk:= k+1;if l>kthen writeln('а) Отрицательных чисел больше чем положительных')else if lelse writeln('а) Отрицательных и положительных чисел одинаково');writeln;writeln('б) Поставить минимальный элемент на первое место и максимальный элемента массива на последнее');writeln;min := 1;max := 1;for u:=1 to 15 do beginif a[u] < a[min] thenmin := u;if a[u] > a[max] thenmax := u;end;c:=a[1];a[1]:=a[min];a[min]:=c;b:=a[15];a[15]:=a[max];a[max]:=b;for i:= 1 to 15 dowrite(a[i]:4);writeln;writeln;end.Здесь он сравнивает положительные и отрицательные числа, ставит минимальный элемент массива на первое место и максимальный элемент на последнее место.Нужно реализовать вывод всех номеров элементов, на которых встречается минимальное значение. (элемент - a[min], его номер в массиве - min).Я уже запутался что-то мальца, Пожалуйста посчитайте, пожалуйста, дописать уже этот код.
ОТВЕТЫ

Mefodij
Oct 24, 2020
const n=15;
var a: array[1..n] of integer;
i,k,l,c:integer;
min,max:byte;
begin
randomize;
for i:= 1 to n do
begin
a[i]:=random(-20,20);
write(a[i]:4);
end;
writeln;
l:=0; k:=0;
for i:= 1 to n do
if a[i]<0 then l:=l+1
else if a[i]>0 then k:=k+1;
if l>k then writeln('а) Отрицательных чисел больше чем положительных')
else if k>l then writeln('а) Положительных чисел больше чем отрицательных')
else writeln('а) Отрицательных и положительных чисел одинаково');
writeln;
writeln('б) Поставить минимальный элемент на первое место и максимальный элемента массива на последнее');
writeln;
min := 1; max := 1;
for i:=2 to n do begin
if a[i] < a[min] then min := i;
if a[i] > a[max] then max := i;
end;
c:=a[1]; a[1]:=a[min]; a[min]:=c;
c:=a[n]; a[n]:=a[max]; a[max]:=c;
for i:= 1 to n do write(a[i]:4);
writeln;
writeln;
writeln('в) Номера элементов с минимальным значением:');
for i:= 1 to n do
if a[i]=a[1] then write(i,' '); // Минимальный элемент поставлен на первое место!
writeln;
end.
Пример (для элементов из диапазона [-10; 10]):
6 -6 6 -9 -9 -3 -7 9 -3 9 6 -8 7 -3 6
а) Отрицательных чисел больше чем положительных
б) Поставить минимальный элемент на первое место и максимальный элемента массива на последнее
-9 -6 6 6 -9 -3 -7 6 -3 9 6 -8 7 -3 9
в) Номера элементов с минимальным значением:
1 5
var a: array[1..n] of integer;
i,k,l,c:integer;
min,max:byte;
begin
randomize;
for i:= 1 to n do
begin
a[i]:=random(-20,20);
write(a[i]:4);
end;
writeln;
l:=0; k:=0;
for i:= 1 to n do
if a[i]<0 then l:=l+1
else if a[i]>0 then k:=k+1;
if l>k then writeln('а) Отрицательных чисел больше чем положительных')
else if k>l then writeln('а) Положительных чисел больше чем отрицательных')
else writeln('а) Отрицательных и положительных чисел одинаково');
writeln;
writeln('б) Поставить минимальный элемент на первое место и максимальный элемента массива на последнее');
writeln;
min := 1; max := 1;
for i:=2 to n do begin
if a[i] < a[min] then min := i;
if a[i] > a[max] then max := i;
end;
c:=a[1]; a[1]:=a[min]; a[min]:=c;
c:=a[n]; a[n]:=a[max]; a[max]:=c;
for i:= 1 to n do write(a[i]:4);
writeln;
writeln;
writeln('в) Номера элементов с минимальным значением:');
for i:= 1 to n do
if a[i]=a[1] then write(i,' '); // Минимальный элемент поставлен на первое место!
writeln;
end.
Пример (для элементов из диапазона [-10; 10]):
6 -6 6 -9 -9 -3 -7 9 -3 9 6 -8 7 -3 6
а) Отрицательных чисел больше чем положительных
б) Поставить минимальный элемент на первое место и максимальный элемента массива на последнее
-9 -6 6 6 -9 -3 -7 6 -3 9 6 -8 7 -3 9
в) Номера элементов с минимальным значением:
1 5
458
Смежные вопросы: