永发信息网

PASCAL阅读程序写结果

答案:1  悬赏:70  手机版
解决时间 2021-11-16 22:08
  • 提问者网友:溺爱和你
  • 2021-11-16 02:49
PASCAL阅读程序写结果
最佳答案
  • 五星知识达人网友:鸽屿
  • 2021-11-16 03:24
const SIZE=10;
var
i,j,cnt,n,m:integer; data:array[1..SIZE] of integer;
begin
readln(n,m);
for i:=1 to n do read(data[i]);
for i:=1 to n do
begin
cnt:=0; for j:=1 to n do if (data[i] if cnt=m then writeln(data[i]);
end;
end.

首先5-6行读入数据
n=5, m=2, data[1]=96, data[2]=-8, data[3]=0, data[4]=16, data[5]=87
对于7-11行的循环
先看10行的条件 条件要求在data[i]也就是data[i]与每个数比较 data[i]较小 或者相同时输入顺序靠前(与自己比较时不符合i于是到11行时 cnt表示 i=某值时 满足条件的个数
也就是说 当满足条件的个数=m时 输出data[i]
可以发现 data[i]为第m+1大的数
也就是输出 第m+1大的数 数字相同时输入顺序靠后的数被认为较大(当然了不会影响答案)
答案就是第3大的数 也就是16了
(不过我觉得像这种不太复杂的题直接全部代入数据一步一步想就差不多了)
P.S.我是新手 没考过竞赛 以上纯属个人思路
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯