Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
nutty
всем дорого времени суток)
пожалуйста помогите исправить что бы норм работало,а то я что то уже запутался...
условие: дан массив А1...А40 заменить все элементы стоящие между Амах и Амин или Амин и Амах на 0
вот что у меня имеется...

program masminmax;
uses crt;
var A: array[1..10] of integer;
Amax,Amin,i,mini,maxi: integer;
begin
clrscr;
Amin:=1;
Amax:=1;
for i:=1 to 10 do
begin
readln(A[i]);
If i=1 then
begin
Amin:=A[i];
Amax:=A[i];
end;
if A[i]<Amin then
mini:=i;
if A[i]>Amax then
maxi:=i;
end;
if mini>maxi then
for i:=maxi to mini do
A[i]:=0;
if mini<maxi then
for i:=mini to maxi do
A[i]:=0;
writeln('result');
for i:=1 to 10 do
write(A[i],' ');
readln;
end.


вот...он как то неправильно считает...буду оч признателен если кто нибудь подскажет)

Теги не забываем...
volvo
Ты не совсем правильно находишь min/max...

mini := 1; maxi := 1;
for i:=1 to 10 do
begin
readln(A[i]);

if A[i]<A[mini] then mini:=i;
if A[i]>A[maxi] then maxi:=i;
end;


Вот так будет лучше... Кстати, почему 10? В условии говорится про 40 ...
nutty
да я так тоже пробывал,но многого это не изменило,а преподавателю почему та не понравилось...
а 10 чтобы быстрее проверять было :-[
там просто нужно самому вводить,а каждый раз 40 чисел лень))
volvo
Не знаю, что там НЕ понравилось твоему преподавателю... Программа (с моим исправлением) выходит рабочая... Единственное, что надо исправить - это то, что сейчас на нули заменяются все элементы между мин/макс, ВКЛЮЧАЯ мин/макс... Небольшое исправление:

program masminmax;
uses crt;
var
A: array[1..10] of integer;
i, mini, maxi: integer;
begin
clrscr;
mini := 1; maxi := 1;

for i:=1 to 10 do begin
readln(A[i]);

if A[i]<A[mini] then mini:=i;
if A[i]>A[maxi] then maxi:=i;
end;

if mini>maxi then
for i:=maxi + 1 to mini - 1 do A[i]:=0
else
if mini<maxi then { <--- Можно и без этого... }
for i:=mini + 1 to maxi - 1 do A[i]:=0;

writeln('result');
for i:=1 to 10 do write(A[i],' ');
readln;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.