Array65. Дан массив $$A$$ размера $$N$$ и целое число $$K$$ ($$1 \leq K \leq N$$). Преобразовать массив, увеличив каждый его элемент на исходное значение элемента $$A_K$$.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
program Array65; var a : array[1..10] of integer; N,K,i,Ak:Integer; begin Write('N: '); Readln(N); Write('K: '); Readln(K); Writeln('A: '); for i:=1 to N do begin write(i,' :'); readln(a[i]); end; Ak:=a[k]; for i:=1 to N do a[i]:=a[i]+Ak; for i:=1 to N do writeln(i,' :',a[i]); readln; end. |
Решение, без использования дополнительной переменной:
1 2 3 4 5 6 7 8 9 10 11 |
var n,k,i:integer; a:array [1..10]of real; begin readln(n); for i:=1 to n do readln(a[i]); read(k); for i:=1 to n do if i<>k then a[i]:=a[i]+a[k]; a[k]:=2*a[k]; for i:=1 to n do writeln(a[i]); end. |
Задачи из раздела Array можно посмотреть здесь.
без доп переменной
[/crayon]
я бы не стал это использовать в жизни… i*(real/i)<>real в общем в самый неожиданный момент в real появится куча 9 после запятой или какая нибудь 0.0000000000000001 в зависимости от компилятора… и в общем хорошего мало…
Предлагаю так:
var
a: array[1..100] of integer;
N, K, i, Ak: integer;
begin
write(‘Введите размер массива чисел (<100): ');
readln(N);
for i:=1 to N do A[i]:=random(100);
writeln('Получен случайный массив чисел:');
for i:=1 to N do write(A[i]:5);
writeln;
write('Укажите любой номер элемента массива (<=', N, '): ');
readln(K);
Ak := A[k];
for i := 1 to N do A[i] := A[i] + Ak;
writeln('Получен новый массив чисел:');
for i:=1 to N do write(A[i]:5);
end.