回 帖 发 新 帖 刷新版面

主题:真的要求助!!!帮忙啊!!!

为什么输出是这个!!!求助啊!!!

program sc (input output);
var
a:integer;
b:real;
c:char;
d:boolean;
begin 
a:=1357;
b:=1234.5678;
c:='%';
d:=true;
writeln(a,a:5);
writeln(b,b:=12:5);
writeln(c,c:5);
writeln(d,d:5);
writeln('end':5);
end.

为什么输出的 结果是
1357⊥1357
⊥1.23456789000e+03⊥1234.56780
%⊥⊥⊥%
true⊥true
⊥⊥end

而不是
⊥1357
⊥⊥⊥⊥%
⊥ture
⊥⊥end


还有个问题就是:
数据实型输出
write(-123.4);
写出来的是-1.2340000000e+02
若write(-123.4:17:5);
则写出来是什么啊??
并且本人对这种数据实型输出不懂,谁能解释一下,或者告诉这个结构是什么,和什么数学问题有关,本人才高1,有些不懂啊!!!
[em18]

回复列表 (共5个回复)

沙发

writeln是换行;
整数后加":n"(场宽),表示输出的位数,所要输出的补空格.
如要输出123 而场宽为5 的话,就输出"  123"
若实型,形式为":m:n",M表示总长,N表示小数数位;
字符型形式为":m",表示字符总长.
输出为"       -123.50000",总长度为17个字符,小数为5位,原数小数位只有1位,故补4个零.

板凳

你输出用(a,a:5),前面一个a就已经有一个输出结果了,
后面再用了个输出(场宽)。
只需(a:5)即可。

3 楼

谢谢了啊!!!

4 楼

但是(a,a:5)输出应该是  1347而电脑书上是输出1347 1347是不是错啊!!!~~

5 楼

你可能看错了,输出的确实是1347 1347,因为WRITE的参数了有两个a,当然输出两个了,再试一次吧

我来回复

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