数组及应用练习题(一) 下载本文

数组及应用练习题(一)

一、反序( fx.pas )

【问题描述】

输入n个不超过20000的整数。按输入相反的输出n个整数。 【输入文件】

输入文件fx.in包括两行数据。 第一行只有一个正整数:n

第二行共有n个不超过20000的整数。 【输出文件】

输出文件fx.out只有一行共有n个整数,顺序与输入的相反,数与数之间用一个空格隔开。

【样例输入】 3 1 2 3

【样例输出】 3 2 1

【数据限制】

100%的数据:1 <= n <= 10 000。

( ** P1142 ** )

二、两行整数相加( xj.pas )

【问题描述】

输入两行整数,输出它们的和 【输入文件】

输入文件xj.in共有三行:

第一行只有一个正整数:n 第二行共有n个整数 第三行共有n个整数

第二、三行中的所有整数的绝对值均不大于10000 【输出文件】

输出文xj.out只有一行共有n个整数:相对应位置上的两个整数之和,数与数之间用一个空格隔开 【样例输入】 3

1 -2 4 2 1 -9

【样例输出】 3 -1 -5

【数据限制】

100%的数据:1 <= n <= 1 000。

( ** P1144 ** )

三、准方差( zfc.pas )

【问题描述】

输入n个正整数,先求出它们的平均值x,然后求出所有数据与x的差的平方和S 。 【输入文件】

输入文件zfc.in包括两行数据: 第一行只有一个正整数:n

第二行共有n个正整数,每个正整数均不超过500,数与数之间用一个空格隔开。 【输出文件】

输出文件zfc.out只有一行且只有一个实数:S (结果保留4位小数)。 【样例输入】 3 1 1 3

【样例输出】 2.6667

【数据限制】

100%的数据:1 <= n <= 10 000。

( ** P1143 ** )

四、整数环( zsh.pas )

【问题描述】

将输入的n个整数形成一个环,然后从第k个数开始输出整个整数环。 【输入文件】

输入文件zsh.in共有二行:

第一行只有二个正整数:n k

第二行共有n个整数,所有整数的绝对值均不大于10000 【输出文件】

输出文zsh.out只有一行共有n个整数:从第k个数开始的整个环,数与数之间用一个空格隔开 【样例输入】 5 2

1 2 3 4 -5 【样例输出】 2 3 4 -5 1

【数据限制】

100%的数据:1 <= k < n <= 1 000。

( ** P1146 ** )

五、最大值( max.pas )

【问题描述】

输入n个整数,输出所有相邻两数的和或积的最大值。 【输入】

输入文件max.in共有两行:

第一行只有一个正整数:n

第二行共有n个整数,所有整数的绝对值均不大于10000

【输出】

输出文件max.out只有一行且只有一个整数:所有相邻两数的和或积的最大值。 【样例输入】 5

1 3 -4 2 -8 【样例输出】 4

【数据限制】

100%的数据:1 <= n <= 1000。

( ** P1147 ** )

六、整数分左右( lr.pas )

【问题描述】

依次输入n个不等于0的整数,将第一个正数存放在a[1]中、第二个正数存放在a[2]中、……,将第一个负数存放在a[n]中、第二个负数存放在a[n-1]中、……。当n个整数处理完成后依次输出数组a中的n个数。 【输入文件】

输入文件lr.in包括两行数据。第一行只有一个正整数:n ( 1 <= n <= 10000 ),第二行共有n个不等于0的整数,每个整数的绝对值不超过10000。 【输出文件】

输出文件lr.out只有一行共有n个整数,依次是处理后的整数,数与数之间用一个空格隔开。 【样例输入】 10

100 -200 -150 140 129 -134 -167 -198 200 111 【样例输出】

100 140 129 200 111 -198 -167 -134 -150 -200

七、陶陶摘苹果( apple.pas )

【问题描述】

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,

陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。 【输入文件】

输入文件apple.in包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。 【输出文件】

输出文件apple.out包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

【样例输入】

100 200 150 140 129 134 167 198 200 111 110

【样例输出】 5

八、编码问题( bmwt.pas )

【问题描述】

设有一个数组A:array[0..n-1] of integer;数组中存放的元素为0至n-1之间的整数,且A[i]<>A[j](当i<>j时)。 如:n=6时,A=(4,3,0,5,1,2) 此时,数组A的编码定义如下: A[0]的编码为0

A[i]的编码为:在A[0],A[1],……,A[i-1]中比A[i]的值小的个数(i=1,2,……,n-1) 所以上面的数组A的编码为:B=(0,0,0,3,1,2) 【输入】

输入文件bmwt.in共有二行:

第一行只有一个正整数:n

第二行共有n个整数,对应于数组A的n个元素

【输出】

输出文件bmwt.out只有一行共有n个元素:数组A的编码B。 【样例输入】 6

4 3 0 5 1 2 【样例输出】 0 0 0 3 1 2

【数据限制】

100%的数据:1 <= n <= 500。

( ** P1103 ** )

九、点的线段覆盖( fg.pas )

【问题描述】

在一条射线上有n个点,用一条长为k的线段去覆盖,最多能盖住几个点? 假定:线段的顶点碰到某个点,就可以认为该点已被覆盖。 【输入】

输入文件fg.in共有两行。

第一行只有两个正整数:n k 其中:n表示点的个数,k表示线段的长度 第二行共有n个正整数xi,表示点的坐标,数与数之间用一个空格隔开 【输出】

输出文件fg.out只有一行且只有一个正整数:最多能覆盖的点数。 【样例输入】 3 10 1 12 24 【样例输出】 1

【数据限制】

100%的数据:1 < n < 10000 , 0 < xi <= 1 000 000 , 1 <= k <= 10 000。

( ** P1183 ** )