求一道free pascal 的题目:
programexp3(input,output);vari,j,s:integer;b:array[0..5]ofinteger;begins:=1;fori:=1to...
program exp3(input,output);
var i,j,s:integer;
b:array[0..5]of integer;
begin
s:=1;
for i:=1 to 5 do b[i]:=i;
j:=1;
while j>0 do
begin
j:=5
while (j>0)and(b[j]=10+j-5)do j:=j-1;
if j>0 then
begin
s:=s+1;b[j]:=b[j]+1;
for i:=j+i to 5 do b[i]:=b[j]+i-j
end;
end;
writein('s=',s);
end.
能告诉我解题过程的最好,这道题的答案我有……跪求了!!! 展开
var i,j,s:integer;
b:array[0..5]of integer;
begin
s:=1;
for i:=1 to 5 do b[i]:=i;
j:=1;
while j>0 do
begin
j:=5
while (j>0)and(b[j]=10+j-5)do j:=j-1;
if j>0 then
begin
s:=s+1;b[j]:=b[j]+1;
for i:=j+i to 5 do b[i]:=b[j]+i-j
end;
end;
writein('s=',s);
end.
能告诉我解题过程的最好,这道题的答案我有……跪求了!!! 展开
3个回答
展开全部
while j>0 do后面的意思是 把b【1~5】 从1~5 变为6~10 所以要25次 因为S本来是1 所以S为26 还有观察一下就知道for i:=j+i to 5 do b[i]:=b[j]+i-j 这段中i永远比5大 所以不会执行 望采纳 (仅限你现在的程序 就如楼上所说 这一段 问题很多 你打错了 不少吧 少打了分号 i:=j+i 这里 也应该有问题 还有是 writeln 不是writein) 额。。就5个数据,当然就是人工模拟啦,实在不行,你把每一句的作用写出来,如b[i]:=b[j]+i-j即在j之后到5的每一个数加上这个数的标号与当前处理的数的距离,慢慢模拟吧,关键是细心。
还有 for i:=j+i to 5 do b[i]:=b[j]+i-j 这个怎么看都是 for i:=j+1 to 5 do b[i]:=b[j]+i-j把,是题目错了还是你打错了?
还有 for i:=j+i to 5 do b[i]:=b[j]+i-j 这个怎么看都是 for i:=j+1 to 5 do b[i]:=b[j]+i-j把,是题目错了还是你打错了?
富港检测东莞有限公司
2024-12-24 广告
2024-12-24 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者...
点击进入详情页
本回答由富港检测东莞有限公司提供
展开全部
额。。就5个数据,当然就是人工模拟啦,实在不行,你把每一句的作用写出来,如b[i]:=b[j]+i-j即在j之后到5的每一个数加上这个数的标号与当前处理的数的距离,慢慢模拟吧,关键是细心。
还有 for i:=j+i to 5 do b[i]:=b[j]+i-j 这个怎么看都是 for i:=j+1 to 5 do b[i]:=b[j]+i-j把,是题目错了还是你打错了?
还有 for i:=j+i to 5 do b[i]:=b[j]+i-j 这个怎么看都是 for i:=j+1 to 5 do b[i]:=b[j]+i-j把,是题目错了还是你打错了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while j>0 do后面的意思是 把b【1~5】 从1~5 变为6~10 所以要25次 因为S本来是1 所以S为26 还有观察一下就知道for i:=j+i to 5 do b[i]:=b[j]+i-j 这段中i永远比5大 所以不会执行 望采纳 (仅限你现在的程序 就如楼上所说 这一段 问题很多 你打错了 不少吧 少打了分号 i:=j+i 这里 也应该有问题 还有是 writeln 不是writein)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询