已调试过了,应该不会错,希望lz看好:
var
s:string;
h,m,s1,s2,s3:real;
i:longint;
ch:char;
begin
readln(s);
for i:=1 to length(s) do
if s[i]=':' then break;
val(copy(s,1,i-1),h);
val(copy(s,i+1,length(s)-i),m);
while (h<>0)or(m<>0) do
begin
if h=12 then h:=0;
s1:=m*0.5+h*30;
s2:=m*6;
if s1>s2 then
begin
if s1-s2<=360-(s1-s2) then writeln(s1-s2:0:3) else writeln(360-(s1-s2):0:3);
end
else
begin
if s2-s1<=360-(s2-s1) then writeln(s2-s1:0:3) else writeln(360-(s2-s1):0:3);
end;
readln(s);
for i:=1 to length(s) do
if s[i]=':' then break;
val(copy(s,1,i-1),h);
val(copy(s,i+1,length(s)-i),m);
end;
end.
主要是记住时针是每分钟走0.5度,而分针是每分钟走6度!希望采纳!