free pascal编程题

题目:描述某百货公司为了促销,采用购物打折的办法。(1)在1000元或以上者,按九五折优惠;(2)在2000元或以上者,按九折优惠;(3)在3000元或以上者,按八五折优... 题目:描述
某百货公司为了促销,采用购物打折的办法。
(1) 在1000元或以上者,按九五折优惠;
(2) 在2000元或以上者,按九折优惠;
(3) 在3000元或以上者,按八五折优惠;
(4) 在5000元或以上者,按八折优惠。 编写程序,输入购物款数,计算并输出优惠价。

输入
第一行1个正整数t,表示有t组数据,以下t行,每行1个正整数t,即购物款数。

输出
共t行,每行一个数,即相应的优惠价格,要求保留一位小数。

样例输入
2
2000
1550

样例输出
1800.0
1472.5

为什么网站说我答案错误呢?
program jiage;
var n,a:integer;
t:array[0..100000] of longint;
out:array[0..100000] of longint;
begin
readln(n);
for a:=1 to n do
begin
readln(t[a]);
if t[a]<1000 then out[n]:=100*t[a];
if(t[a]>=1000) and (n<2000) then out[a]:=95*t[a];
if(t[a]>=2000) and (n<3000) then out[a]:=90*t[a];
if(t[a]>=3000) and (n<5000) then out[a]:=85*t[a];
if t[a]>=5000 then out[n]:=80*t[n];
end;
a:=0;
for a:=1 to n do
writeln(out[a]/100:0:1);
readln
end.
展开
 我来答
夜猫香槟
2008-11-01 · TA获得超过479个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:0
展开全部
明明用一个数就可以存储;为什么要用数组呢?我认为是数组太浪费空间。
program jiage;
var n,a:integer;
t:longint;
out:longint;
ans:real;
begin
readln(n);
for a:=1 to n do
begin
readln(t);
if t<1000 then out:=100*t;
if(t>=1000) and (n<2000) then out:=95*t;
if(t>=2000) and (n<3000) then out:=90*t;
if(t>=3000) and (n<5000) then out:=85*t;
if t>=5000 then out:=80*t;
ans:=out/100;
writeln(ans:0:1);
end;
end.
LennyAscetic
2008-10-31 · TA获得超过1111个赞
知道小有建树答主
回答量:545
采纳率:0%
帮助的人:869万
展开全部
把var n,a:integer;
改为 var n,a:longint;试试
另外,没有必要用数组存数据和结果,直接一边读一边输出就行了
还有for循环前的a:=0; 是没用的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lushl9301
2008-11-01 · TA获得超过967个赞
知道答主
回答量:200
采纳率:0%
帮助的人:167万
展开全部
将longint改为real
用实型存储
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式