一道pascal问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 04:05:26
超市购物不超过100元打九折,超过100元的,超过部分七折,编一道程序完成超市自动计费工作。
答案是:
program p4_14(input,output);
var w,x:real;
begin
read(w);
if w<100 then x:=0.9*w
else x:=0.7*(w-100)+0.9*100;
writeln(x);
end.
问下是不是一定要用x?能不能只用w?
program p4_14(input,output);
var
w:real;
begin
read(w);
if w<100 then writeln('w=',0.9*w)
else writeln('w=',0.7*(w-100)+0.9*100;
end.
我是初学者,第二个程序是我的想法,不知道有什么问题呢?还是不能这样写?谢谢解答!!定追加悬赏!

可以只用W
你的程序还是有一些小问题,可以参考下面的修改:
{首部可以省略}
var
w:real;
begin
readln(w);{比赛上的数据都带回车,虽然不加也不会错,但是加上ln规范一些}
if w<=100 then writeln('w=',0.9*w){注意!!看清题目,是超过100元的部分打七折,但是你用了'<',应该改为'<='}
else writeln('w=',0.7*w+20);{少打了一个括号;化简,加快程序运行速度}
end.

如果是在比赛上面,就还要改:
var
w:real;
begin
readln(w);
if w<=100 then writeln(0.9*w)
else writeln(0.7*w+20);{题目没有要求打出'w=',就不要打出来}
end.

我也是初学者,我认为一定要要用x,因为要用到两个变量值,就要定义两个

可以这么写 不过else writeln后少个括号。。
你可以编译运行一下就知道啦

用turbo pascal