回 帖 发 新 帖 刷新版面

主题:新近在教学生时要求学生编一道求小数位数的程序

新近在教学生时要求学生编一道求小数位数的程序, 一位学生编程如下:
var i:real;
    j:integer;
begin
  readln(i);
  repeat
    i:=i*10;
    j:=j+1;
    until i=trunc(i);
  writeln(j);
end.

输入:
   23.234
输出:
   3           ----->正确

输入:
    7.98
输出:
    15     正确的结果应为2.


请教各位大虾,问题出在什么地方.   是否是I实数有误差???

回复列表 (共12个回复)

11 楼

var s:string;
begin
  readln(s);writeln(length(s)-pos('.',s));
end.
s没有'.'时pos('.',s)返回0,所以亦成立

12 楼

[quote]果然出错 “then”打成了“thene”[/quote]

我来回复

您尚未登录,请登录后再回复。点此登录或注册