数组习题一解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、对输入的一句子实现查找且置换的功能(找到某个子串并换成另一子串)。
程序一:
var s,t,r,x:string;
i,k:integer;
begin
write('Thetext:');
readln(t);
write('Find:');
readln(s);
write('Replace:');
readln(r);
k:=length(s);
x:='';
repeat
i:=pos(s,t);
if i>0 then
begin
x:=x+copy(t,1,i-1)+r;
t:=copy(t,i+k,255);
end;
until i=0;
x:=x+t;
writeln(x);
readln;
end.
程序二:
var s,t,r:string;
i:integer;
begin
write('Thetext:');
readln(t);
write('Find:');
readln(s);
write('Replace:');
readln(r);
i:=pos(s,t);
while i <> 0 do
begin
delete(t,i,length(s));
insert(r,t,i);
i:=pos(s,t);
end;
writeln(t);
readln;
end.
例:输入句子:i am a student 查找a 替换成am
输出:i amm am student
Program test;
Procedure rever;
Var c:char;
Begin
Read(c);
If c<>'.' Then rever;
Write(c);
End;
Begin
Rever;
End.
2、读入一串字符,以句号结束,然后让其倒序输出。
如输入:I am a student.
输出:.tneduts a ma I
var s,sub:string;
i:integer;
begin
readln(s);
for i:=2 to length(s) do
begin
sub:=copy(s,i,1);
delete(s,i,1);
insert(sub,s,1);
end;
writeln(s);
end.
3、找出一个二维数组的鞍点,即该位置上的元素在该行上最大、该列上最小,也可能没有鞍点。数组的值从键盘输入,如:
19 23 21 13
61 25 34 45
67 32 39 29
39 98 27 56
输出:第一行第二列23
如果没有鞍点则显示NO!,有则显示每个鞍点的位置和值,一个占一行
program andian;
const m=3;n=3;
var a:array[1..3,1..3] of integer;
i,j,u,v:integer;
found:boolean;
begin
for i:=1 to m do
for j:=1 to n do
read(a[i,j]);
found:=false;
i:=1;
repeat
v:=1;
for j:=2 to n do
if a[i,j]>a[i,v] then v:=j;
u:=0;
repeat
u:=u+1;