判断回文数的程序出错(pascal语言)
发布网友
发布时间:2024-10-17 20:31
我来回答
共2个回答
热心网友
时间:2024-10-29 09:16
str过程是将给定的数字转换为一个串而不是一个字符。。
你的程序的意思是把原串逐个转换成数字,在把转换成的数字倒着转换回字符串,与原串比较相等与否,所以,我建议你这样修改:
program p1044;
var i,j,l,p:integer;
s,s1:string;
n:boolean;
a:array[1..200] of integer;
begin
read(s);
n:=true;
for i:=1 to length(s) do a[i]:=ord(s[i])-48;
for j:=length(s) downto 1 do s1:=s1+chr(a[j]+48);
if s<>s1 then n:=false;
if n then write('Yes') else write('No');
end.
如果我来写这个程序,我会这样写:
var s:string;
i:longint;
begin
readln(s);
for i:=1 to length(s) shr 1 do
if s[i]<>s[length(s)-i+1] then begin writeln('No'); halt; end;
writeln('Yes');
end.
这样更加简洁。。
热心网友
时间:2024-10-29 09:17
应该没错