回 帖 发 新 帖 刷新版面

主题:[原创]更好的

program sf_3;
var
   a,b,c,d:char;
begin
  writeln;
  for a:='1' to '4' do
     for b:='1' to '4' do
        for c:='1' to '4' do
           for d:='1' to '4' do
           begin
             if ((ord(a='1')+ord(b='3')) + (ord(c='1')+ord(d='4'))
                 + (ord(d='1')+ord(b='3'))) =3    then
              write(a,'a',b,'b',c,'c',d,'d');
           end;
end.

回复列表 (共1个回复)

沙发

唉!现在有不少人把PASCAL和QBASIC搞混了。

楼主的是什么程序啊!说QBASIC的不是,PASCAL的也不是……

[quote]畸形+变异=上段代码[/quote]

楼主想做的程序是这样一个问题:
有A、B、C、D四个人参加一个比赛,他们刚好获得了前四名。赛后有人问他们的名次,他们一共说了3句话,内容如下:
   1、“A是第1名,B是第3名。”
   2、“C是第1名,D是第4名。”
   3、“D是第1名,B是第3名。”
其中每句话都是一真一假,求他们的名次。
如果上个问题用QBASIC做应该是这样的:

CLS
DATA first,second,third,fourth
DIM a$(4): FOR i = 1 TO 4: READ a$(i): NEXT i
FOR a = 1 TO 4: FOR b = 1 TO 4: FOR c = 1 TO 4: FOR d = 1 TO 4
    IF a * b * c * d = 24 AND a + b + c + d = 10 THEN
      IF (a = 1) + (b = 3) = -1 THEN
         IF (c = 1) + (d = 4) = -1 THEN
            IF (d = 1) + (b = 3) = -1 THEN
               PRINT "A is "; a$(a)
               PRINT "B is "; a$(b)
               PRINT "C is "; a$(c)
               PRINT "D is "; a$(d)
            END IF
         END IF
      END IF
    END IF
NEXT d, c, b, a
END
运行结果:
A is fourth
B is third
C is first
D is second

至于PASCAL的我就不编了,除非你到PASCAL论坛去发。

我来回复

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