一维数组习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一维数组
【例1】输入50个数,要求程序按输入时的逆序把这50个数打印出来;也就是说,请你按输入相反顺序打印这50个数
分析:我们可定义一个数组a用以存放输入的50个数,然后将数组a内容逆序输出,源程序如下
program ex5_1;
type
arr=array[1..50]of integer; {说明一数组类型arr}
var
a:arr;
i:integer;
begin
writeln('Enter 50 integer:');
for i:=1 to 50 do read(a[i]);{从键盘上输入50个整数}
readln;
for i:=50 downto 1 do {逆序输出这50个数}
write(a[i]:10);
end.
【例2】输入十个正整数,把这十个数按由大到小的顺序排列(将数据按一定顺序排列称为排序,排序的算法有很多,其中选择排序中的―简单选择排序‖是一种较简单的方法)
分析:要把十个数按从大到小顺序排列,则排完后,第一个数最大,第二个数次大,……;因此,我们第一步可将第一个数与其后的各个数依次比较,若发现,比它大的,则与之交换,比较结束后,则第一个数已是最大的数。同理,第二步,将第二个数与其后各个数再依次比较,又可得出次大的数。如此方法进行比较,最后一次,将第九个数与第十个数比较,以决定次小的数。于是十个数的顺序排列结束。
例如下面对5个进行排序,这个五个数分别为829105。按选择排序方法,过程如下:
初始数据:82910 5
第一轮排序:82910 5
92810 5
10289 5
10289 5
第二轮排序:10829 5
10928 5
10928 5
第三轮排序:10982 5
10982 5
第四轮排序:10985 2
对于十个数,则排序要进行9次。源程序如下:
program ex5_2;
var
a:array[1..10]of integer;
i,j,t:integer;
begin
writeln('Input 10 integers:');
for i:=1 to 10 do read(a[i]);{读入10个初始数据}
readln;
for i:=1 to 9 do{进行9次排序}
begin
for j:=i+1 to 10 do{将第i个数与其后所有数比较}