一道Pascal编程题目

2025-05-17 12:32:07
推荐回答(1个)
回答(1):

已调试过了,应该不会错,希望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度!希望采纳!