все элементы заданного массива вещественных чисел A(N),начиная с первого по порядку элемента, уменьшить на единицу.Новый массив переписать в S(N).
ПОМОГИТЕ ПОЖАЛУЙСТААААААА:*
Ввод массива стандартный, набирается самим компьютером наугад или вообще без ввода чисел?
хз:D а программу как записать?:)*
Uses crt; const n=20; var a:array[1..n] of integer; s:array[1..n] of integer; i,j:integer; begin randomize; for i:=1 to n do begin a[i]:=random(20); write(a[i]:3); end; writeln; for i:=1 to n do a[i]:=a[i]-1; for j:=1 to n do for i:=1 to n do if i=j then s[j]:=a[i]; for j:=1 to n do write(s[j]:3); end.
ооо...это программа? спасибоооо:*
пожалуйста)
Зачем иезуитство с двойным циклом? Тут же даже не двухиндексовые массивы.
мы же одновременно должны перебирать элементы ДВУХ массивов
Так ответом-то служит только второй массив, уже собранный.
в конце выводится как раз второй массив, первый выводился только для наглядности правильности решения
for j:=1 to n do for i:=1 to n do if i=j then s[j]:=a[i]; Понимаете ли, у вас вот это вложение циклов - проклятие оптимизации:) зачем прогонять пару циклов с проверкой на совпадение индексов, если можно загнать их под один цикл, где индексы всегда равны будут?
хорошо, я с вами соглашусь)
Program task; var i,n:longint; a:array [0..10000] of real; s:array [0..10000] of real; beginwriteln('skolko elementov v massive?'); readln(n); for i:=1 to n do begin a[i]:=random(100); end; for i:=1 to n do begin s[i]:=a[i]-1; end; for i:=1 to n do begin writeln(s[i]:0:0); end; readln; end. //даже если расписывать всё и вся, что можно - получается так.