| Автор | помогите с одномерными массивами |
задача
убрать первый отрицательный элемент
вот что я написал
program mm;
const n=4;
type mas=array [1..n] of integer;
var a:mas;
i,b:integer;
begin
for i:=1 to n do
read (a[i]);
for i:=1 to n do
begin
if a[i]<0 then
b:=i;
break end;
for i:=b to n-1 do
a[i]:=a[i+1];
в этой строчке пишет ,что 0-выход за границы диапазона 1..4
for i:=1 to n-1 do writeln (a[i]:4);
end.
где ошибка?напишите в лп |
| Зачем break? Он у тебя при i = 1 сразу срабатывает |
| уважаю! |
Вместо этого цикла лучше используй
b := 1;
while (a[b] >= 0) and (b <= n) do
b := b + 1; |
| Позволит избавиться и от ошибки и от несовершенного break'а. А для обозначения счетчиков привычнее использовать i, j, k - a, b, c и x, y, z чаще как переменные фигурируют. |
спасиб
ща поздно завтра проверять буду |
| Не за что! И проверку сделай на случай когда нет отрицательных элементов |