Неправильно...
Смотри сам - наиболее близким к целому является 90.00
А у тебя в ответе совсем другое число.
Ошибка в том, что ты берешь остаток не по модулю, а со знаком.
попробуй так:
Код
uses crt;
const n=10;
var x: array [1..n] of real;
i,k : integer;
min,res : real;
begin
clrscr;
randomize;
writeln ('Ishodnii massiv');
for i:=1 to n do
begin
x[i]:=random(99)+random;
if random > 0.5 then
x[i]:=-x[i];
end;
min:=1;
for i:=1 to n do
begin
if abs(frac(x[i]))>=0.5 then
res:=1-abs(frac(x[i]))
else
res:=abs(frac(x[i]));
if res<min then
begin
min:=res;
k:=i;
end;
end;
for i:=1 to n do
write (x[i]:0:3 ,' ');
writeln;
writeln ('Rezultat: ',x[k]:0:3);
readln;
end.
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!