pascal函数的随机数

来源:百度知道 编辑:UC知道 时间:2024/09/22 01:02:38
program ex;
a,b:integer;
begin
a:=random(100);
while b<>a do
begin
readln(b);
if b>a then writeln('da')
else writeln('xiao');
if b=a then writeln('tai you cai le o');
end;
end.

哪里有错
这是一个猜数字游戏,问问哪里错了

program ex;
var a,b:integer;
begin
a:=random(100);
read(b);
repeat
if b>a then writeln('Da')
else if b<a then writeln('Xiao')
else if b=a then writeln('Tai You Cai Le!');halt;end;
read(b);
until b=a;
end.

能说得上错的就是输出问题了,主要问题是才对了以后,会输出两行,地一行是‘小’,第二行是‘太有才了哦’,主要是if语句的问题,其实这个题可以用if嵌套来做,主要是吧while中的内容改成如下:
begin
  readln(b);
  if b>a then writeln('da')
     else if b<a then writeln('xiao')
       else writeln('tai you cai le o')
end;

没有初始化随机数种子,这样会导致随机数以一定规律输出,造成随机数是伪随机数。
至于什么是随机数种子......自己上网查查吧。
解决方法是在程序开头加上一句:randomize;

定义变量,用var
var a,b:integer;