Подкорректируйте код пожалуйста (pascal)

  • Автор темы stupidstudent
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

stupidstudent

#1
В общем мне дали такую задачку (pascal):
Записать в одномерный массив, те числа из числовой последовательности введенной пользователем, у которых, сумма цифр стоящих на четных позициях от конца, у которых эта сумма нечетная. С использованием function или procedure.

Вот что у меня получилось правда без одномерного массива, да и работает:
Код:
uses crt;
var n, s4, i, x : integer;		 
function sum(x : integer ):integer; 
var h, s : integer;
BEGIN
s := 0;
while ( x > 0 ) do
begin
h := x mod 10;
s := s + h;
x := x div 10;
end;
sum := s;
end;

begin
clrscr;
s4 := 0;
write ('kol-vo 4isel - ');
readln(n);
for i := 1 to n do
begin
write ('vvedite ',i,'-oe 4islo - ');
readln(x);
if sum(x) mod 2 = 1 then
s4 := s4 + x;
end;
write ('Sum = ', s4);
readln;

END.
через одномерный массив
Код:
Uses crt;
var s4,n, i, x , g: integer;
a : array [1..100] of integer; j:integer;
function sum(x : integer ):integer;
var h, s : integer;
BEGIN
s := 0;
while ( x > 0 ) do
begin
h := x mod 10;
s := s + h;
x := x div 10;
end;
sum := s;
end;

begin
clrscr;
s4 := 0;
write ('kol-vo 4isel - ');
readln(n);
j:=0;
for i := 1 to n do
begin
write ('vvedite ',i,'-oe 4islo - ');
readln(x);
if sum(x) mod 2 = 1 then
begin
inc(j);
a[j]:=x;
end;
end;
writeln('Massiv:');
for i:=1 to j do begin
g := a[i] + a[j];
writeln('sum = ', g);
end;
readln;

END.
что можно улучшить\дополнить?
 
Статус
Закрыто для дальнейших ответов.