永发信息网

Pascal里的case语句,求助! 试编写一个根据用户键入的两个操作数和一个运算符由计算机输出运算结果的程序

答案:4  悬赏:10  手机版
解决时间 2021-03-09 09:19
  • 提问者网友:夢醒日落
  • 2021-03-08 18:10
整个程序是这样
但是怎么把操作数与运算符写同一行?如'5+3'?
我只能这样输入'5 3'
'+'
求助!!!
var
result,x,y:real;
ch:char;
flag:boolean;
begin
readln(x,y);
readln(ch);
result:=0;
flag:=true;
case ch of
'+':result:=x+y;
'-':result:=x-y;
'*':result:=x*y;
'/':if y <>0 then
result:=x/y;
else
flag:=false;
end;
if flag then writeln(result:0:2)
else writeln('Error');
end.
最佳答案
  • 五星知识达人网友:由着我着迷
  • 2021-03-08 19:20
这个简单,我在区里比赛时写过:
program exp;
var c,op:string[1];
sc:string;
a,b:longint;
err:integer;
begin
assign(input,'exp.in');reset(input);
assign(output,'exp.out');rewrite(output);
read(INPUT,c);
sc:='';
while (c<>'+')and(c<>'-')and(c<>'*') do
begin
sc:=sc+c;
c:='';
read(input,c);
end;
val(sc,a,err);
sc:='';
op:=c;
c:='';
read(INPUT,c);
sc:='';
while not eof(input) do
begin
sc:=sc+c;
c:='';
read(input,c);
end;
sc:=sc+c;
val(sc,b,err);
if op='+' then writeln(output,a+b);
if op='-' then writeln(output,a-b);
if op='*' then writeln(output,a*b);
close(input);
close(output);
end.
全部回答
  • 1楼网友:一叶十三刺
  • 2021-03-08 21:29
用pos()函数和字符串可以吗?
  • 2楼网友:duile
  • 2021-03-08 20:45
第一段代码中你的错误是在 x:='+' 上,正确的应该是 x='+' ,因为在pascal中 :=是赋值符, =是判断符;而且char类型不能用or连接。 可以参考下: program lx_4_4; var a,b:real; x:char; begin readln(a,b,x); case x of '+':writeln(a+b:0:10); '-':writeln(a-b:0:10); '*':writeln(a*b:0:10); '/':if b=0 then writeln('error') else writeln(a/b:0:10) else writeln('error'); end; end.
  • 3楼网友:酒者煙囻
  • 2021-03-08 20:03
分离一下就可以了,用string类型
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯