作业帮 > 综合 > 作业

隐藏的最大整数pascal

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/09/13 17:27:00
隐藏的最大整数pascal
做一个如下的编程题遇到些问题..
1059:【基础】隐藏的最大整数时间限制:1 Sec 内存限制:16 MB
提交:920 解决:485
[提交][状态][讨论版]
  今天是个好日子,整数小伙伴们又一起出来聚会了.大家商议决定:今天玩捉迷藏!玩法很简单,就是把藏在一个长长的字符串中(任何两个人都不会并排藏在一起)数字伙伴找出来.而且,因为伙伴们太多,只找到此次藏起来的最大的那个伙伴就可以了.并且,大家一致同意,让“1”做第一个找人的人——当然,事先,他并不知道到底有哪些伙伴藏起来了……   游戏开始了.“1”是一个很聪明的人,很快,他就把最大的那个伙伴找出来了……   如果你是“1”,你能写个程序来解决这件事情么?
输入
只有一个字符串,这里面藏有很多的整数小伙伴.
输出
只有一个整数,表示藏在其中的最大的那个整数小伙伴的位置(整数第一个数字在原串中的位置).
样例输入
*((*-a32AB342+//32143abAA
样例输出
17
提示
这个串中共藏有32、342和32143三个小伙伴,其中32143是最大的,它在原来的串中的位置是17.
来源
2008年北京市小学生邀请赛模拟题(4)
我写的程序:
var s,sl,sll:string;ch:char;a:array[1..30]of integer;n,x,i,k,max:longint;
begin
readln(s);
fillchar(a,sizeof(a),0);
for i:=1 to length(s) do
begin
read(s[i]);
if s[i] in ['0'..'9'] then a[i]:=1 else a[i]:=0;(测试时发现不执行这条语句).
end; (找出所有数字 )
for i:=1 to length(s) do
begin if a[i]= 1 then(扫描出所有数字)
begin
sl:=sl+s[i];(将数字从字符转为常量)
val(sl,k);
if k>max then max:=k;(找出最大整数)
end;
if a[i]=0 then sl:='';
end;
str(max,sll);(将最大整数转为字符串)
n:=pos(sll,s);(找到字符串的位置)
writeln(n);
end.
下面是你的程序~~我直接在上面改了·~还有~~写程序要养成好习惯~~格式要写好~~不然看起来会很乱~~查错会很烦滴~~

var
s,sl,sll:string;ch:char;
a:array[1..30]of integer;
n,x,i,k,max:longint;
begin
readln(s);
fillchar(a,sizeof(a),0);
for i:=1 to length(s) do
begin
read(s[i]); //这里你打错了吧?上面已经读入了s字符串了~
if s[i] in ['0'..'9'] then a[i]:=1 else a[i]:=0;(测试时发现不执行这条语句).///上面你写错了~
end; (找出所有数字 )
for i:=1 to length(s) do
begin
if a[i]= 1 then(扫描出所有数字)
begin
sl:=sl+s[i];(将数字从字符转为常量)
val(sl,k); //其实这一步没必要~~字符串直接比较大小~~这个根据A什么码~~不懂就算了
if k>max then max:=k;(找出最大整数)
end;
if a[i]=0 then sl:='';
end;
str(max,sll);(将最大整数转为字符串)
n:=pos(sll,s);(找到字符串的位置)
writeln(n);
end.

改好了~~楼主你试试吧~~应该可以的了~~注意格式啊~~希望能帮到你~~~