Được gửi bởi
bld
í í xem lại cái đã,thuật toán của bo chưa trọn vẹn đâu:
if scon[i]=sme[j] then... bo cần có câu else nữa
để dễ hiểu hơn bld xin lấy ví dụ như sau:
sme: accdef
scom:cde
=> kết quả sẽ in ra : vị trí là từ 2 đến 5 (ồ vậy không đúng rồi!)
nếu scon[i]=sme[j] mà scon[i+1]<>sme[j+1] thì thuật toán ko đúng rồi
bo coi lại ,bld có nhầm lẫn gì thì nói nha
ừh! BO cám ơn bld nha! Bo hiểu rồi!
Được gửi bởi
BeatOfAngle
Các bạn mới học lập trình nên tuân theo các phong cách lập trình,dễ cho người đọc cũng như khi sửa lỗi
tôi thấy nên thế này!!!
qui định phòng:= qui định phòng + cái này
nhớ nha!
chỉ cấn thêm chữ code ở đầu và /code ở cuối thôi( nhớ cho 2 chữ đó trong dấu []) nha!
[=========> Bổ sung bài viết <=========]
Code:
uses crt;
var st:string;i:byte;
begin
clrscr;
write('nhap st=');readln(st);
while st[length(st)]=' ' do delete(st,length(st),1);
for i:=1 to length(st) do
if (i=1) and (st[i]=' ') then
begin
delete(st,i,1);
i:=i-1;
end
else if (st[i]=' ') and (st[i+1]=' ') then
begin
delete(st,i,1);
i:=i-1;
end;
for i:=1 to length(st) do
if (i=1) or (st[i-1]=' ')then st[i]:= upcase(st[i])
else if st[i]in ['A'..'Z']then st[i]:=chr(ord(st[i])+32);
write(st);
readln
end.
để Bo sửa bài của Cô Gái nha!!
cái đoạn code dùng để xóa các kí tự trắng đầu thì chỉ cần dùng tương tự nhưng bước xóa các kí tự trắng cuối thôi
while s[1]=' ' do delete(s,1,1);
nếu dùng như Cô gái là có hàng tá lệnh thừa tốn nhiều bộ nhớ!
thuật toán của côgái thường rất dài!!côgái nên rút ngắn bớt bằng cách tìm ra cách dòng lệnh thường.cách điều kiện thừa vd:
Code:
if (i=1) and (st[i]=' ') then
tại sao không làm thành if s[1]=' ' then
Bookmarks